我有2张桌子。
Table 1:
ID Name Age PhoneNumber
12 Joe 25 873827382
23 Bob 28 928398233
34 Jane 23 237828883
Table 2:
ID Agent QuantitySold
12 A1 100
23 B1 300
12 C1 600
34 A2 400
34 B1 800
23 B2 900
我想显示从未出售数量不等于800的员工的所有详细信息。
SELECT a.ID, a.Name, a.Age, a.PhoneNumber
FROM table1 a LEFT JOIN table2 b
ON a.ID= b.ID AND b.quantity <> 800
我想要一个没有ID 34的结果集。但我似乎无法实现这一目标。有什么帮助吗?
最佳答案
您需要将Left Join
更改为Inner Join
。Left Join
将带走table1
中的所有行,即使他从未创建过sales
。我将使用Exists
进行此操作。
SELECT a.ID,
a.Name,
a.Age,
a.PhoneNumber
FROM table1 a
WHERE EXISTS (SELECT 1
FROM table2 b
WHERE a.ID = b.ID
AND b.quantity <> 800)
关于mysql - 左联接查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28233168/