对于社交Web应用程序,我需要以下列方式创建MySQL表,
id | user_id | friend_id
------------------------
0 | 5 | 6
1 | 6 | 5
用户5和另一个用户6现在是朋友。如何获取特定用户的朋友列表。有人能指出我正确的方向吗?
答案 0 :(得分:1)
如果您为所有用户存储friend_ids,您可以尝试:
SELECT friend_id FROM TableName WHERE user_id=@userID
从程序中传递参数@userID。
示例:
SELECT friend_id FROM TableName WHERE user_id=5
修改强>
对于这两个领域:
SELECT CASE WHEN friend_id=5 THEN user_id
WHEN user_id=5 THEN friend_id
END AS Friend
FROM TableName
答案 1 :(得分:1)
SELECT f1.user_id, f2.user_id as 'Friend'
FROM friends f1 left join friends f2
on f1.user_id = f2.friend_id
有关详细信息,请参阅此帖What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN?
答案 2 :(得分:0)
@userid
应该具有与表中相同的数据类型,或者您需要将其转换为相同的
select friend_id where user_id=@userid