1
我使用下面的查询来获取ID和一个朋友在MySQL的用户名好友资料:获得MySQL中
SELECT
DISTINCT members.id AS userid,
members.gebruikersnaam AS username,
members.pasfoto AS avatar,
members.id AS link,
FROM
friends
JOIN
members
ON
friends.friend_out = members.id
WHERE
(
friends.friend_in = '".mysql_real_escape_string($userid)."'
OR
friends.friend_out = '".mysql_real_escape_string($userid)."'
)
AND
friends.active = 1
ORDER BY
members.username
ASC
在好友桌子上有一排为每个友谊,使友谊是两种方式。
例如:
friend_in ----- friend_out
4 ------------- 6 ---------
所以这是用户4和6之间友谊的唯一行。
在上面的查询中,我想获取登录用户的朋友数据。所以我必须检查friend_in是否是登录用户(所以friend_out必须由select语句返回),friend_out是登录用户(所以friend_in必须由select语句返回)。
在上面的查询中,必须更改de join以获取朋友数据。
任何人都可以帮我解决这个问题吗?
对不起,我把它翻译成英文。但实际上这不是问题。你的第二个评论的确是问题。但是,是否可以创建加入条件来加入好友ID而不是用户ID?因为我认为工会都是严谨的。我只需要朋友数据,而不是朋友和用户数据。 – Arjen 2010-09-15 14:31:57
@Arjen:我不确定你的意思是“太严谨”。这是我会这样做的方式。另一种方法是将所有的友谊存储两次(每个方向一次) - 然后您可以简化查询,但需要花费双倍的数据存储。 – 2010-09-15 14:40:38