ホームページ >データベース >mysql チュートリアル >MySQL の UNION と LIMIT を使用して複数の企業から上位 N 件の求人を取得するにはどうすればよいですか?

MySQL の UNION と LIMIT を使用して複数の企業から上位 N 件の求人を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-14 12:56:44213ブラウズ

How to Retrieve the Top N Jobs from Multiple Companies Using MySQL's UNION and LIMIT?

MySQL の UNION と LIMIT: 複数の企業から上位の求人を効率的に取得する

この記事では、MySQL の UNION 句と LIMIT 句を使用して、さまざまな企業から指定された数の上位の求人を取得する方法を説明します。 課題は、全企業にグローバルに適用するのではなく、各企業の求人選択に個別に LIMIT を適用することにあります。

一般的ですが欠陥のあるアプローチでは、UNION DISTINCT を単一の LIMIT 句で使用します。これにより、制限は各企業に個別に適用されるのではなく、結合された結果セットに適用されます。

MySQL ドキュメントで詳しく説明されている解決策には、LIMIT クエリの個々の ステートメントの SELECTUNION 句を適用することが含まれます。 これにより、各企業のデータに対して独立した制限が保証されます。

「Company1」と「Company2」から上位 10 件の求人を取得するための最適化されたクエリは次のとおりです。

<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)</code>

このクエリは、各企業から上位 10 件の求人を効率的に取得し、UNION 操作内の独立した制限の要件を満たします。 この手法は、複数のデータ ソースを操作する場合に、正確かつ効率的にデータを取得するために非常に重要です。

以上がMySQL の UNION と LIMIT を使用して複数の企業から上位 N 件の求人を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。