我正在开展一个项目。我有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的重复数据
答案 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)