首頁 >資料庫 >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 的 UNIONLIMIT 子句從不同公司擷取指定數量的頂層職位。 挑戰在於將 LIMIT 獨立地應用於每個公司的職位選擇,而不是在全球所有公司中應用。

一種常見但有缺陷的方法使用 UNION DISTINCT 和單一 LIMIT 子句。這會將限制應用於組合結果集,而不是單獨應用於每個公司。

解決方案(如 MySQL 文件中詳細介紹)涉及在 LIMIT 查詢的每個單獨 語句中應用 子句 SELECT。 這確保了每個公司數據的獨立限制。 UNION

以下是從「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn