2016-06-07 110 views
0

我對MySql查詢有點問題。我有兩個表格:獲取不是登錄用戶的朋友的所有用戶

Table name "users" 
id, profilephoto, sex, name, lastname 

Table name "friends" 
id, idSender, idReceiver 

idSender和idReceiver是發送好友請求的id用戶的值,以及誰獲得好友請求。
現在我需要得到誰不是朋友與一些用戶登錄的所有用戶(例如 - 用戶ID - 12)

我做這個查詢:

SELECT DISTINCT users.id, users.profilephoto,users.sex,users.name,users.lastname FROM users INNER JOIN friends ON users.id=friends.idSender WHERE (friends.idSender!=12 OR friends.idReceiver!=12) 

我得到錯誤的信息。

如果有人有任何想法,我會感激。

來自表格的簡單數據>
表格用戶:
ID | profilephoto |性別|名稱|姓氏
1 | image1.jpg | 1 |約翰|雪
2 | image2.jpg | 2 |麗莎|測試
3 | image3.jpg | 1 | Patric |測試
4 | image4.jpg | 2 | Elizabet |測試

表朋友:
ID | idReceiver | idSender
1 | 1 | 2 // Lisa將好友請求發送給John
2 | 2 | 3 //帕特里克發送好友請求麗莎

麗莎我只想顯示Elizabet
對於Elizabet我想顯示麗莎,約翰和帕特里克
約翰我需要帕特里克和Elizabet
對於帕特里克,我需要和約翰Elizabet

+0

您能否顯示您的兩個表中的一些示例數據,並顯示哪些用戶應該被選中,哪些不應該? –

回答

0

你需要做左連接

SELECT * from users u 
LEFT JOIN friends f ON u.id = f.idSender OR u.id = f.idReceiver 
WHERE u.id = 12 
AND f.idSender IS NULL 
OR f.idReciever IS NULL 

希望它有幫助。

+0

非常感謝,這工作;) –

0

我想嘗試這種查詢將選擇用戶沒有朋友

select u.* 
from user u 
left join friends f on f.idSender= u.id or f.idReceiver= u.id 
where f.id is null 
相關問題