1

我知道这是一个模棱两可的主题,因为如果我知道确切的名称,谷歌会给我答案。而且,对不起英语。

好的,我有 3 个表,如下所示

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

假设我们有 3 个工作,其中 1、2、3 作为 id 和 2 个用户 test1、test2 作为 id 和 1 个 job_hide 记录,其中 2 作为 job_id 和 test2 作为 user_id。

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

提前致谢。

4

2 回答 2

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
       )
于 2012-04-25T09:01:41.557 回答
0

为此,您可以简单地使用 is null 条件:

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
于 2012-04-25T08:18:53.570 回答