1

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

我有两张桌子:

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 是正确的,但是第二个 join 似乎不起作用。你知道第二次加入有什么问题吗?

4

1 回答 1

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

于 2012-10-22T10:49:42.263 回答