Mysql,双连接,使用相同的表两次,但间接

时间:2012-10-22 10:47:40

标签: mysql join self-join

在同一张桌子上有很多关于加入的问题,但我找不到与我的问题相关的内容

我有两张桌子:

user (id, name)
friends (from, to)

我有以下查询。它应该与他们的朋友一起检索所有用户:

SELECT user.id, user.name, f.to, friend.id, friend.name
FROM user

LEFT JOIN friends f ON user.id = f.from
LEFT JOIN user friend ON  user.id = f.to
LIMIT 0, 200

它返回如下内容:

id name from to id   name
1  bob  1    3  NULL NULL
1  bob  1    4  NULL NULL
2  toto 2    7  NULL NULL

from和two是正确的,但第二次连接似乎不起作用。你有任何想法第二次加入有什么问题吗?

1 个答案:

答案 0 :(得分:3)

试试这个:

SELECT user.id, user.name, f.to, friend.id, friend.name
FROM user
LEFT JOIN friends f ON user.id = f.from
LEFT JOIN user friend ON friend.id = f.to
LIMIT 0, 200

请注意,我在加入条件中将user替换为friend

相关问题