首頁 > 資料庫 > 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 操作限制每個公司結果數

目標是從兩個指定公司中檢索符合特定條件的 20 個職位,同時限制每個公司的結果數最多為 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 語句中,而不是將其應用於組合的結果集。這確保了每個公司的結果都限制在最多 10 個。然後,我們使用另一個外部 ORDER BY 語句以公司名稱對最終組合的結果集進行排序。

請記住,MySQL 在 UNION 之後套用 ORDER BY,因此需要另一個 ORDER BY 來對組合的結果集進行排序。

以上是在 MySQL 中使用 UNION 時如何限制每個公司的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板