我有一个“工作”和“公司”表,我想提取20个满足以下条件的工作:
- 仅来自两(2)个具名公司的职位
- 每个公司最多可以有10个工作
我曾尝试以下SELECT
同UNION DISTINCT
,但问题是,LIMIT 0,10
适用于整个结果集。我希望它适用于每个公司。
如果每个公司没有10个工作,则查询应返回找到的所有工作。
SELECT c.name, j.title, j.`desc`, j.link
FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company1')
UNION DISTINCT
SELECT c.name, j.title, j.`desc`, j.link
FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company2')
ORDER by name, title
LIMIT 0,10
我是MySQL的新手,所以意识到可能有一种比UNION更好的方法来执行此操作,因此绝对欢迎提出改进建议。