查找与其他表中的选定行没有定义关系的行?

时间:2012-09-12 23:28:52

标签: mysql join

我有两张表如下:

users
-----
id | name
_________
 1 | mert
 2 | ersin
 3 | faruk

friends
-------
id | follower | following
_________________________
1  |    2     |    3     |
2  |    3     |    1     |
__________________________

我想找到那些不关注所选人的人。

例如:

get_people_not_follow(2) // "ersin"
Result: array(array(1, 'mert'), array(3, 'faruk'));

get_people_not_follow(1) // "mert"
Result: array(array(2, 'ersin'));

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

SELECT users.id, name
FROM users LEFT JOIN friends ON (following = users.id AND follower = ##)
WHERE friends.id IS NULL

##是您感兴趣的ID。