我完全能夠得到所有的登錄用戶當前的朋友,這是我此查詢這裏做 -如何獲取登錄用戶不是MySQL中的所有用戶?
SELECT users.*
FROM users
LEFT JOIN friends
ON users.id = friends.friend_id
WHERE friends.user_id = $user_logged_in_id
但我想要做的相反,我也搞不清楚。
我想要做朋友的邏輯。
我需要得到所有誰是當前登錄用戶的用戶尚未朋友
我有一個用戶表和朋友表作爲一個多用戶和他們的朋友之間一對多的關係。 friends表中的鍵是user_id friend_id。
爲了說明某人是我與其他用戶的朋友(說登錄的用戶ID是3,朋友的用戶ID是6)user_id = 3
和friend_id = 6
作爲一行,然後把另一行與ID的翻轉來說明友誼的另一種方式,user_id = 6
和friend_id = 3
。
用戶表
|---------------------|------------------|
| id | username |
|---------------------|------------------|
| 1 | sonja12 |
|---------------------|------------------|
| 2 | dorris32 |
|---------------------|------------------|
| 3 | billy32 |
|---------------------|------------------|
| 4 | micha97 |
|---------------------|------------------|
| 5 | travis841 |
|---------------------|------------------|
| 6 | johnny28 |
|---------------------|------------------|
朋友表
|---------------------|------------------|------------------|
| id | user_id | friend_id |
|---------------------|------------------|------------------|
| 1 | 3 | 6 |
|---------------------|------------------|------------------|
| 2 | 6 | 3 |
|---------------------|------------------|------------------|
編輯:
我想我已經縮小我的問題有點更簡潔。
我想從用戶表中獲取所有用戶,其中他們的ID不會顯示爲朋友表中當前登錄用戶的user_id旁邊的朋友ID。
更具體。現在看起來像'... WHERE friends.user_id!= $ user_logged_in_id「'會修復它,但我假設,這沒有奏效? – SourceOverflow
不,返回除登錄用戶以外的所有人,並且它返回用戶登錄的用戶已經是朋友的兩倍 我希望能夠看到登錄用戶不是朋友的列表,以便他們可以輕鬆點擊「添加朋友按鈕」並添加新朋友。返回所有用戶並排除那些已經登錄的用戶已經是朋友,但我覺得像普通的sql會是一個更好的方式去這樣的事情。 –