J'ai un Emplois et un Entreprises et je veux extraire 20 emplois qui répondent aux critères suivants :
- Emplois uniquement de deux (2) entreprises nommées
- Il peut y avoir au maximum 10 emplois par entreprise
J'ai essayé ce qui suit SELECT
con UNION DISTINCT
mais le problème est que le LIMIT 0,10
s'applique à l'ensemble des résultats. Je veux qu'elle s'applique à chacune des entreprises.
S'il n'y a pas 10 emplois par entreprise, la requête doit renvoyer tous les emplois qu'elle trouve.
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')
UNION DISTINCT
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
Je suis nouveau dans le monde de MySQL, et je réalise qu'il y a peut-être une façon plus intelligente de faire cela plutôt que d'utiliser UNION, donc toute suggestion d'amélioration est la bienvenue.