为什么在MySQL php中显示许多同名的行?

时间:2018-11-19 12:09:54

标签: mysql sql phpmyadmin

我尝试了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。 谢谢!

1 个答案:

答案 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;

也就是说,寻找匹配项,然后返回不匹配的行。