Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit UNION und LIMIT von MySQL die Top-N-Jobs von mehreren Unternehmen abrufen?

Wie kann ich mit UNION und LIMIT von MySQL die Top-N-Jobs von mehreren Unternehmen abrufen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-14 12:56:44212Durchsuche

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

MySQL's UNION und LIMIT: Effizientes Abrufen von Top-Jobs von mehreren Unternehmen

In diesem Artikel wird gezeigt, wie Sie mithilfe der UNION- und LIMIT-Klauseln von MySQL eine bestimmte Anzahl von Top-Jobs von verschiedenen Unternehmen abrufen können. Die Herausforderung besteht darin, ein LIMIT auf die Stellenauswahl jedes Unternehmens unabhängig anzuwenden, und nicht global über alle Unternehmen hinweg.

Ein gängiger, aber fehlerhafter Ansatz verwendet UNION DISTINCT mit einer einzigen LIMIT-Klausel. Dadurch wird die Beschränkung auf die kombinierte Ergebnismenge angewendet, nicht auf jedes Unternehmen einzeln.

Die in der MySQL-Dokumentation beschriebene Lösung besteht darin, die LIMIT-Klausel innerhalb jeder einzelnen SELECT-Anweisung der UNION-Abfrage anzuwenden. Dies gewährleistet eine unabhängige Begrenzung der Daten jedes Unternehmens.

Hier ist die optimierte Abfrage zum Abrufen der Top-10-Jobs von „Unternehmen1“ und „Unternehmen2“:

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

Diese Abfrage ruft effektiv die Top-10-Jobs von jedem Unternehmen ab und erfüllt damit die Anforderung einer unabhängigen Begrenzung innerhalb des UNION-Betriebs. Diese Technik ist für den genauen und effizienten Datenabruf bei der Arbeit mit mehreren Datenquellen von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonWie kann ich mit UNION und LIMIT von MySQL die Top-N-Jobs von mehreren Unternehmen abrufen?. 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