我有一个Jobs和一个Companies表,我想提取 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,所以绝对欢迎任何改进建议。