Ho una tabella MySQL denominata accounts
. All'interno di questa tabella c'è un campo chiamato salesmanager_id
. Il 99% delle volte, il valore in questo campo è sempre lo stesso per tutti gli account di un cliente specifico (specificato con customer_id
).Trovare il valore "esotico" in una tabella MySQL
Quello che sto cercando di fare è trovare il customer_id
per i clienti che hanno account assegnati a più di un addetto alle vendite. Ad esempio:
+------------------------------------+
| id | customer_id | salesmanager_id |
|------------------------------------|
| 1 | 12 | 4 |
| 2 | 12 | 4 |
| 3 | 14 | 3 | <-- I want this customer_id
| 4 | 14 | 4 |
+------------------------------------+
Nell'esempio precedente, customer_id
14 ha sia salesmanager_id
3 e 4 ad esso assegnata. Vorrei recuperare quello customer_id
per la mia lista.
Ho provato la seguente query, ma questo restituisce un risultato vuoto (mentre sono sicuro che ci siano almeno alcune differenze).
SELECT `name`, `customer_id` AS `customer`, `salesmanager_id` FROM `accounts`
WHERE `salesmanager_id` NOT IN (
SELECT `salesmanager_id` FROM `accounts` a
LEFT JOIN `customers` c ON (a.customer_id = c.id)
WHERE a.customer_id=c.id
) GROUP BY `customer`;
Grazie, era esattamente quello di cui avevo bisogno! – Oldskool