Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Ergebnisse pro Unternehmen begrenzen, wenn ich UNION in MySQL verwende?

Wie kann ich die Ergebnisse pro Unternehmen begrenzen, wenn ich UNION in MySQL verwende?

Susan Sarandon
Susan SarandonOriginal
2025-01-14 12:49:48751Durchsuche

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

Die Kombination von UNION- und LIMIT-Operationen in MySQL begrenzt die Anzahl der Ergebnisse pro Unternehmen

Ziel ist es, 20 Stellenangebote, die bestimmte Kriterien erfüllen, von zwei bestimmten Unternehmen abzurufen und dabei die Anzahl der Ergebnisse auf maximal 10 pro Unternehmen zu begrenzen. Bei der Verwendung von UNION DISTINCT und LIMIT treten Probleme auf, da sich Letzteres auf die gesamte Ergebnismenge und nicht auf einzelne Ergebnismengen für jedes Unternehmen auswirkt.

Die folgende Lösung behebt dieses Problem:

<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>

Die wichtigste Änderung besteht darin, die LIMIT-Klausel in einzelne SELECT-Anweisungen zu verschachteln, anstatt sie auf die kombinierte Ergebnismenge anzuwenden. Dadurch wird sichergestellt, dass die Ergebnisse auf maximal 10 pro Unternehmen begrenzt sind. Anschließend verwenden wir eine weitere äußere ORDER BY-Anweisung, um die endgültige kombinierte Ergebnismenge nach Firmennamen zu sortieren.

Denken Sie daran, dass MySQL ORDER BY nach UNION anwendet, daher ist ein weiteres ORDER BY erforderlich, um die kombinierte Ergebnismenge zu sortieren.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ergebnisse pro Unternehmen begrenzen, wenn ich UNION in MySQL verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn