检查两个表中是否存在一行

时间:2018-06-09 16:55:20

标签: mysql sql left-join row

我有两张桌子:

朋友:

node

关注者

accountId | friendId
--------------------
       A1 |      B15
       A1 |      C34
       A1 |      D48

我尝试运行一个MYSQL查询,该查询将返回另一个表中“followerId”列中不存在的“friendId”。基本上我试图找到“朋友”表中的哪些行,不存在于“粉丝”表中。

我试过了:

accountId | followerId
----------------------
       A1 |        B15
       A1 |        C34

但它什么也没有返回。没有结果。只是null。我手动检查了表的有效性,它确实包含这些条目。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用:

SELECT *
FROM friends AS f
LEFT JOIN followers AS l
  ON f.accountId = l.accountId
 AND f.friend_id = l.follower_id   -- additional condition
WHERE l.accountId IS NULL;

输出:

accountId | friendId | accountId | follower_id
       A1 |      D48 | NULL      | NULL