2012-01-25 89 views
0

表:MySQL的左连接存在

  • 用户:ID,名称
  • usersFacebookFriends:ID,UID,friendUid,名

我需要一个查询搜索好友(名称),并检查它们是否存在于用户表中,所以他们也在网站上注册。

这是可能的左连接,如果是这样怎么样?

谢谢。

回答

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 JOININNER JOIN如果你只需要找到那些谁存在。

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;