我正在使用mysql的朋友表。我想要獲取朋友用戶名和用戶名錶單當前用戶名。與mysql的朋友表
friend
=======
- id
- uid
- fid
Sample Data
===========
id uid fid
1 1 2
2 3 1
user
====
- id
- username
Sample Data
===========
id username
1 saturngod
2 snow
3 John
我當前的代碼是
SELECT `user`.id,`user`.username FROM friend
INNER JOIN User
ON user.id = friend.uid
WHERE friend.fid = (SELECT `id` FROM `User` WHERE `username`='saturngod')
UNION
SELECT `user`.id,`user`.username FROM friend
INNER JOIN User
ON user.id = friend.fid
WHERE friend.uid = (SELECT `id` FROM `User` WHERE `username`='saturngod')
它的工作。我收到了朋友名單。不過,我覺得,sql太長了。
我可以減少這個SQL,並且我們可以在沒有UNION的情況下寫入sql嗎?
不工作。它只能檢查user.id = friend.uid。它沒有檢查user.id = friend.fid。例如,用戶ID爲1的朋友是2和3.您的代碼只搜索2並且沒有顯示3. – saturngod