Tengo una tabla MySQL llamada accounts
. Dentro de esta tabla hay un campo llamado salesmanager_id
. El 99% del tiempo, el valor en este campo es siempre el mismo para todas las cuentas de un cliente específico (especificado con customer_id
).Encontrar el valor "exótico" en una tabla MySQL
Lo que estoy tratando de hacer es encontrar el customer_id
para los clientes que tienen cuentas asignadas a más de un gerente de ventas. Por ejemplo:
+------------------------------------+
| id | customer_id | salesmanager_id |
|------------------------------------|
| 1 | 12 | 4 |
| 2 | 12 | 4 |
| 3 | 14 | 3 | <-- I want this customer_id
| 4 | 14 | 4 |
+------------------------------------+
En el ejemplo anterior, customer_id
14 tiene tanto salesmanager_id
3 y 4 asignado a él. Me gustaría recuperar ese customer_id
para mi lista.
He intentado la siguiente consulta, pero eso arroja un resultado vacío (aunque estoy seguro de que hay al menos algunas diferencias).
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`;
¡Gracias, eso era exactamente lo que necesitaba! – Oldskool