[英]Mutual Friends Mysql Query
在為我的網站創建共同的朋友代碼時,我陷入了困境。 我在這里閱讀了一些帖子,但沒有幫助。
這是我的mysql查詢:
select *
from friend_list
where uid='7'
and status=1
and friend_id !='3'
union
select *
from friend_list
where uid='3'
and status=1
and friend_id !='7'
這將顯示所有登錄用戶的朋友和我訪問的個人資料的朋友。 輸出是這個----
id uid friend_id status
36 7 4 1
39 7 5 1
40 7 8 1
1 3 4 1
從這個表我只需要freind_id 4,因為這是相互的。
SELECT *
FROM friend_list AS f
INNER JOIN friend_list AS mf ON f.friend_id = mf.friend_id
WHERE f.uid = 7
AND f.status = 1
AND mf.uid = 3
AND mf.status = 1
我剛剛開始學習MySQL,並且已經解決了這個問題。
personID friendID
6 10
6 2
6 3
8 1
8 2
8 3
/* query for friends */
select f.personID, p.personID, firstName, lastName
from person p
inner join friends f on f.friendID = p.personID
where f.personID = 6;
/* query for common friends */
select f1.personID 'personID 1', f2.personID 'personID 2', f1.friendID 'common friend'
from person p
inner join friends f1 on f1.friendID = p.personID
inner join friends f2 on f2.friendID = p.personID
where f1.personID = 6 and f2.personID = 8 and f1.friendID = f2.friendID;
結果:
personID 1 personID 2 common friend
6 8 2
6 8 3
盡管這不是代碼的直接答案,但您可以將我的代碼作為源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.