数据库好友列表结构和查询

时间:2011-05-09 07:37:13

标签: sql

我看过类似的帖子,但我的问题没有解决我有一个数据库表,字段为user_id和friends_id

user_id | friends_id

1 | 2

3 | 4

5 | 1

如果我写查询

select * 
from friends 
where user_id = 1 or friends_id = 1

此回归

user_id | friends_id

1 | 2

5 | 1

问题是当我尝试使用个人资料表加入朋友表时, 包含display_pic的配置文件表现在我尝试写这样的查询

SELECT p.display_pic, f.* 
FROM friends f inner join profiles p on p.user_id = f.user_id
WHERE f.user_id = 1 or f.friend_id = 1

此查询将仅返回user_id的显示图片我想要的第一条记录我需要显示2张图片,而第二条记录需要显示5张图片

我正在使用mysql数据库

请帮帮我谢谢。

1 个答案:

答案 0 :(得分:4)

试试这个

SELECT p.display_pic, f.* 
FROM friends f inner join profiles p on p.user_id = f.user_id 
WHERE f.friend_id = 1
    UNION
SELECT p.display_pic, f.* 
FROM friends f inner join profiles p on p.user_id = f.friend_id 
WHERE f.user_id = 1