mysql左连接存在

时间:2012-01-25 21:36:49

标签: mysql

表:

  • 用户:id,name
  • usersFacebookFriends:id,uid,friendUid,name

我需要一个查询来搜索朋友(姓名),并检查他们是否存在于用户表中,因此他们也在注册的网站上。

这是否可以使用左连接,如果是这样的话?

感谢。

2 个答案:

答案 0 :(得分:3)

SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name
    FROM usersFacebookFriends ff
        LEFT JOIN users u
            ON ff.name = u.name;

如果您只想要存在的那些:

SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name
    FROM usersFacebookFriends ff
        INNER JOIN users u
            ON ff.name = u.name;

如果您只想要那些不存在的那些:

SELECT ff.id, ff.uid, ff.friendUid, ff.name, u.id, u.name
    FROM usersFacebookFriends ff
        LEFT JOIN users u
            ON ff.name = u.name
    WHERE u.id IS NULL;

答案 1 :(得分:0)

我想这应该能找到一份工作。如果facebook朋友没有在您的站点注册,则corrsponding加入用户表字段将为NULL。

SELECT f.name, u.* FROM usersFacebookFriends AS f
LEFT JOIN users AS u
ON f.friendUid = u.id
WHERE f.uid = 123

如果您只需要找到存在的人,请将LEFT JOIN更改为INNER JOIN