我尝试了INNER JOIN两个表,当我使用'='
时,它起作用了,但是当我使用'!='
时,它不再起作用了。结果是很多行具有相同的值。
例如
name:
john
john
john
john
john
mary
mary
mary
mary
lisa
lisa
lisa
lisa
lisa etc... (many other names)
这是我的代码。
SELECT part_names FROM participants INNER JOIN reservations ON participants.part_id != reservations.part_id
疯狂的事情是我得到5个约翰,5个丽莎和4个玛丽(玛丽不应该显示,因为她的参与者ID与预订中的参与者ID匹配。如何解决这个问题,我只能看到表参与者中part_id不匹配的参与者保留表中的“匹配”?只有1个,所以不是Lisa Lisa Lisa Lisa Lisa而是Lisa。 谢谢!
答案 0 :(得分:2)
我很确定您想要left join
并与NULL
作比较:
SELECT p.part_names
FROM participants p LEFT JOIN
reservations r
ON p.part_id = r.part_id
WHERE r.part_id IS NULL;
也就是说,寻找匹配项,然后返回不匹配的行。