选择用户尚未应用的作业

时间:2014-08-10 16:37:50

标签: mysql database portal

我正在开展一个项目。我有2张桌子

表1:带有字段的“作业” job_id 2. company_id 3.标题

表2:带有字段的“job_applications” job_app_id 2. job_id 3. user_id

我想列出作业,但不想列出特定用户已应用的作业。 (例如,共有3个作业。具有user_id 2的用户已使用job_id 1申请作业。因此应显示job_id 2和3的作业)

我试着用这个:

SELECT * FROM jobs j
LEFT JOIN job_applications ja
ON j.job_id = ja.job_id
WHERE ja.user_id !=2

当多个用户申请同一作业并且因为具有NULL值而删除没有人申请的作业时,它会显示表1的重复数据

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。检查IS NULL类似

SELECT j.* FROM jobs j
LEFT JOIN job_applications ja
ON j.job_id = ja.job_id
WHERE ja.user_id IS NULL

答案 1 :(得分:0)

如何使用NOT IN运算符?

SELECT * 
FROM   jobs j
WHERE  job_id NOT IN (SELECT job_id
                      FROM   job_applications
                      WHERE  user_id = 2)