2012-07-19 1 views
0

제목에서 알 수 있듯이, 조인만으로 배제되도록이 글을 다시 쓰는 방법은 무엇입니까?조인 만 사용하고 하위 쿼리를 사용하지 않고이 쿼리를 만드는 방법은 무엇입니까?

select users.id from users where id not in ("select 
pu.owner_id from projects p 
inner join 
projects_users pu on 
pu.owned_project_id = p.id 
where p.project_name = 'This is an example of a project'") 

나는이 작업을 거라고 생각하지만, project_users에 존재하지 않는 사용자로부터 아무것도 반환하지 않는 것 :

select u.id from users u 
     left outer join projects_users pu on 
     pu.owner_id = u.id 
     inner join projects p on 
     pu.owned_project_id = p.id   
     where NOT p.project_name = 'This is an example of a project' 

답변

3
SELECT a.id 
FROM  users a 
LEFT JOIN project_users b ON a.id = b.owner_id 
LEFT JOIN projects c ON b.owned_project_id = c.id AND 
      c.project_name = 'This is an example of a project' 
WHERE  c.id IS NULL 
관련 문제