我有一个名为MySQL的表accounts.在此表中是一个名为的字段salesmanager_id.99%的情况下,此字段中的值对于特定客户(指定的customer_id)的所有帐户始终相同.
我要做的是找到customer_id分配给多个销售经理的客户.例如:
+------------------------------------+
| id | customer_id | salesmanager_id |
|------------------------------------|
| 1 | 12 | 4 |
| 2 | 12 | 4 |
| 3 | 14 | 3 | <-- I want this customer_id
| 4 | 14 | 4 |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,customer_id14 salesmanager_id分配了3和4.我想找回customer_id我的清单.
我尝试了以下查询,但返回一个空结果(虽然我确定至少存在一些差异).
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`;
Run Code Online (Sandbox Code Playgroud)
Zan*_*ien 13
SELECT
customer_id
FROM
accounts
GROUP BY
customer_id
HAVING
COUNT(DISTINCT salesmanager_id) > 1
Run Code Online (Sandbox Code Playgroud)
这基本上得到salesmanager_id了每个的所有s,customer_id如果有多个唯一salesmanager_id值,customer_id则返回.