Ich habe ein Jobs und eine Firmen Tisch, und ich will 20 Arbeitsplätze extrahieren, die die folgenden Kriterien erfüllen:UNION und LIMIT Operationen in MySQL Query-Kombination
- Jobs nur von zwei (2) genannten Unternehmen
- Es kann höchstens sein 10 Arbeitsplätze pro Unternehmen
ich folgendes SELECT
mit UNION DISTINCT
versucht haben, aber das Problem ist, dass t Er LIMIT 0,10
gilt für die gesamte Ergebnismenge. Ich möchte, dass es für jedes der Unternehmen gilt.
Wenn es nicht 10 Jobs pro Firma gibt, sollte die Abfrage alle gefundenen Jobs zurückgeben.
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
Ich bin neu in MySQL, so zu erkennen, kann es zu einer intelligenteren Weg, dies mit UNION statt zu tun, also irgendwelche Vorschläge für Verbesserungen sind auf jeden Fall begrüßen.
Ich wollte durch Die MySQL-Dokumentation, die ORDER BY genannt wurde, kam nach der UNION ..... und vergaß die Klammern! Danke –
@Mauro, das ist ein Problem, das auf dem richtigen Weg ist, oder? -) Usa il segno di "checkmark" sotto il numero di upotes (attualmente tre ...) ... –
Dies funktioniert in MySql, aber es sieht nicht so aus, als würde SQLite dies unterstützen, falls irgendjemand diese Frage auf google –