2012-09-12 50 views
-2

我有兩個表像下面的:查找與其他表中的選定行沒有定義關係的行嗎?

users 
----- 
id | name 
_________ 
1 | mert 
2 | ersin 
3 | faruk 

friends 
------- 
id | follower | following 
_________________________ 
1 | 2  | 3  | 
2 | 3  | 1  | 
__________________________ 

我想找個誰不遵循選定的人的人。

例如:

get_people_not_follow(2) // "ersin" 
Result: array(array(1, 'mert'), array(3, 'faruk')); 

get_people_not_follow(1) // "mert" 
Result: array(array(2, 'ersin')); 

感謝您的幫助。

+0

「SELECT * FROM朋友INNER JOIN用戶ON users.id = friends.follower其中friends.following!= $ ID GROUP BY users.id」當我使用它時,它不會返回在朋友表中不存在的任何用戶。它的順序必須顛倒過來。但我無法做到這一點。對不起我的英語不好。我說不清楚。 –

回答

2
SELECT users.id, name 
FROM users LEFT JOIN friends ON (following = users.id AND follower = ##) 
WHERE friends.id IS NULL 

哪裏##是你感興趣的ID。

+0

謝謝。 :)它返回不跟隨##的人。我想讓不遵循##的人。 –

+0

可能是我追隨了'追隨者'和'追隨'後退。只需交換它們。 – Ariel

+0

非常感謝。 :) –

相關問題