2013-12-09 2 views
-2

에 많은 나는 다음과 같은 테이블이 있습니다많은 관계 필터

user (id, firstname, lastname) 

follow (id, follower_id, following_id) 

이제, 우리는 ID 1, 2, 3, 4를 가진 사용자가 상상

그리고 user_id = 1 5가 이미 사용자 2와 3을 다음과 같이.

이제는 user_id's이 내가 (user_id = 1) (4 및 5)이 아님을 나타내는 쿼리를 작성하고 싶습니다.

누군가 도와 드릴 수 있습니까?

+0

당신이 솔루션 중 하나를 시도 했습니까? –

+0

네, 제가 말하는 가장 좋은 표는 가장 많은 표를 얻은 것입니다. –

답변

1

이 그것을 수행해야합니다

SELECT id FROM user 
WHERE 
    id NOT IN 
    (
     SELECT following_id 
     WHERE follower_id = 1 --(or you can use any user i, i used 1 to show an example) 
    ) 
0
SELECT * FROM user_table 
LEFT JOIN follow_table ON user_table.id = follow_table.following_id 
WHERE follow_table.following_id IS NULL 
0

이 시도 :

SELECT * FROM user_table ut 
LEFT JOIN follow_table ft ON ut.id = ft.following_id AND ft.follower_id = 1 
WHERE ft.following_id IS NULL