Cos*_*lan 0 sql social-networking
我正在尝试选择当前用户的朋友,使用查询返回每个朋友的表 1 行的朋友列表。
我有一个用户和一个朋友表:
User(UserID, Username)
Friends(IdFirst, IdSecond)
Run Code Online (Sandbox Code Playgroud)
假设我有以下用户:(1, 'Alex'), (2, 'Ana'), (3, 'Daniel')以及以下友谊:(1, 2), (1,3), (2,3)
到目前为止,我一直在使用这个查询:
SELECT * FROM User U
LEFT JOIN Friends F
ON U.IdUser = F.IdSecond
WHERE F.IdFirst = *LOGGED USER ID*
Run Code Online (Sandbox Code Playgroud)
它仅在我镜像友谊时才有效,例如:(1, 2) (2, 1) (1, 3) (3,1)并且我只想为每个友谊拥有一对。如果使用上面的查询,我只会得到 IdFirst 的朋友列表。
希望我说的有道理,谢谢!
工会怎么样?http://sqlfiddle.com/#!9/da447/7
SELECT * FROM users U
LEFT JOIN friends F
ON U.userid = F.idsecond
WHERE F.idfirst = *LOGGED USER ID*
UNION
SELECT * FROM users U
LEFT JOIN friends F
ON U.userid = F.idfirst
WHERE F.idsecond = *LOGGED USER ID*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |