2012-04-25 35 views
1

我知道这是模棱两可的主题,因为如果我知道什么名字,谷歌会给我答案。并且,对于英语感到抱歉。如何选择不在关系数据使用左加入

好吧,我有3个表看起来像下面

job job_hide user 
--- -------- ---- 
id job_id id 
name user_id name 

让的说我们有3个工作1,2,3 id和2个的用户为test1,test2的id和对job_hide 1个纪录2为JOB_ID和test2作为user_id。

我的问题是,我如何使用左连接,以防用户test2登录,我想选择除id2之外的所有作业,因为id2的作业已添加到job_hide表中。

在此先感谢。

回答

0

你可以简单的使用是用于该目的空条件:

select job.* from job left join job_hide 
on (job.id = job_hide.job_id and job_hide.user_id = 'test2') 
where job_hide.job_id is null 
0
SELECT id, name 
FROM job 
WHERE id NOT IN 
     (SELECT job_id 
     FROM job_hide AS jh 
     WHERE jh.job_id = job.id 
      AND jh.user_id = 2   --- 2 is the @id_of_the_logged_user 
     )