Maison >base de données >tutoriel mysql >Comment récupérer les N premiers travaux de plusieurs entreprises à l'aide de UNION et LIMIT de MySQL ?

Comment récupérer les N premiers travaux de plusieurs entreprises à l'aide de UNION et LIMIT de MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-14 12:56:44212parcourir

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

UNION et LIMIT de MySQL : récupérer efficacement les meilleurs emplois de plusieurs entreprises

Cet article montre comment récupérer un nombre spécifié d'emplois de premier plan auprès de différentes entreprises à l'aide des clauses UNION et LIMIT de MySQL. Le défi consiste à appliquer un LIMIT à la sélection d'emploi de chaque entreprise de manière indépendante, plutôt que globalement dans toutes les entreprises.

Une approche courante, mais imparfaite, utilise UNION DISTINCT avec une seule clause LIMIT. Cela applique la limite à l'ensemble de résultats combiné, et non à chaque entreprise individuellement.

La solution, telle que détaillée dans la documentation MySQL, consiste à appliquer la clause LIMIT dans chaque SELECT instruction individuelle de la UNION requête. Cela garantit une limitation indépendante des données de chaque entreprise.

Voici la requête optimisée pour récupérer les 10 meilleurs emplois de « Company1 » et « Company2 » :

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

Cette requête récupère efficacement les 10 principaux emplois de chaque entreprise, satisfaisant ainsi l'exigence de limitation indépendante au sein de l'opération UNION. Cette technique est cruciale pour une récupération de données précise et efficace lorsque vous travaillez avec plusieurs sources de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn