[英]Filter on the Many side of a One-To-Many Relationship
我有两个表:jobs和job_industries(已加入jobs.id=job_industries.job_id
)。 我想找到所有带有jobs.title like '%Finance%'
工作, jobs.title like '%Finance%'
而没有job_industries.industry=1
。
但是,当在下面运行查询时,我会得到一份符合职称条件且至少具有一个不是1
行业选项的工作列表。
select jobs.id, title, industry
from `job_industries`
left join jobs on jobs.id=`job_industries`.job_id
where is_live=1 and jobs.`is_closed`=0 and 1 in (select industry from job_industries where job_id in )
例如,如果一个作业具有两个job_industry关系( industry=1
和industry=2
),则此作业将与查询匹配。 我希望找到没有的工作。
SELECT j.id, j.title, ji.industry
FROM jobs j
INNER JOIN job_industries ji
ON j.id = ji.job_id
AND ji.industry <> 1
WHERE j.title LIKE '%Finance%'
AND j.is_live = 1
AND j.is_closed = 0
AND NOT EXISTS (SELECT 1
FROM job_industries ji2
WHERE ji2.job_id = j.id
AND ji2.industry = 1);
或者,您可以改为执行以下操作:
SELECT j.id, j.title, ji.industry
FROM jobs j
INNER JOIN job_industries ji
ON j.id = ji.job_id
AND ji.industry <> 1
LEFT JOIN job_industries ji2
ON j.id = ji2.job_id
AND ji2.industry = 1
WHERE j.title LIKE '%Finance%'
AND j.is_live = 1
AND j.is_closed = 0
AND ji2.job_id IS NULL;
select jobs.id, title, industry
from `job_industries`
left join jobs on jobs.id=`job_industries`.job_id AND job_industries.industry=1
where is_live=1 and jobs.`is_closed`=0 and job_industries.industry IS NULL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.