使用MySQL获取拥有多个电话号码的员工
我有两张表,一张是员工,另一张是详细信息。这里我需要查询来显示拥有多个电话号码的员工。
员工表:
employee_id Name salary
----------- ------- --------------------
0001 John 100000
0002 Peter 50000
0003 Russel 60000
0004 Bill 60000
0005 Patrick 90000
详情表:
employee_id Address phone
----------- ------- --------------------
0001 USA 854646542
0002 Germany 656562354
0001 USA 465222333
0004 China 888444444
0005 Canada 012445869
0005 Canada 789875877
0003 Japan 444555807
由此我需要显示拥有多个电话号码的员工,因此预期的输出应该是
employee_id Name phone
----------- ------- --------------------
0001 John 854646542
0001 John 465222333
0005 Patrick 012445869
0005 Patrick 789875877
我试过的查询:
SELECT COUNT(*)
FROM (
SELECT employee_id, COUNT(*) AS CNT
FROM details
GROUP BY employee_id
) AS T
WHERE CNT > 1
回答
SELECT DISTINCT employee_id, t3.Name, t1.phone
FROM Details t1
JOIN Details t2 USING (employee_id)
JOIN Employee t3 USING (employee_id)
WHERE t1.phone != t2.phone
-- ORDER BY employee_id