Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit UNION und LIMIT von MySQL die Top-N-Jobs von mehreren Unternehmen abrufen?
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!