JobsテーブルとCompaniesテーブルがあり、次の条件を満たす 20 件の求人を抽出したいと考えています。
- 2つの(2)名前の会社からの仕事のみ
- 1 社あたり最大 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を使用する代わりにこれを行うよりスマートな方法があるかもしれないことを理解してください。改善のための提案は大歓迎です.