ホームページ > データベース > mysql チュートリアル > MySQL で UNION を使用するときに会社ごとの結果を制限するにはどうすればよいですか?

MySQL で UNION を使用するときに会社ごとの結果を制限するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-14 12:49:48
オリジナル
749 人が閲覧しました

How to Limit Results Per Company When Using UNION in MySQL?

MySQL で UNION 操作と LIMIT 操作を組み合わせると、企業ごとの結果の数が制限されます

目標は、指定した 2 社から特定の条件に一致する 20 件の求人を取得することですが、結果の数は 1 社あたり最大 10 件に制限されます。 UNION DISTINCT と LIMIT を使用すると、後者が各企業の個別の結果セットではなく結果セット全体に影響を与えるため、問題が発生します。

次の解決策はこの問題を解決します:

<code class="language-sql">((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')
ORDER by name, title
LIMIT 0, 10)
UNION
(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))
ORDER BY name;</code>
ログイン後にコピー

重要な調整は、結合された結果セットに LIMIT 句を適用するのではなく、個々の SELECT ステートメント内で LIMIT 句をネストすることです。これにより、結果は 1 社あたり最大 10 件に制限されます。次に、別の外側の ORDER BY ステートメントを使用して、最終的に結合された結果セットを会社名で並べ替えます。

MySQL は UNION の後に ORDER BY を適用するため、結合された結果セットをソートするには別の ORDER BY が必要であることに注意してください。

以上がMySQL で UNION を使用するときに会社ごとの結果を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート