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