Tengo un Empleo y un tabla Empresas, y quiero extraer 20 empleos que cumplen los siguientes criterios:Combinando las operaciones límite de la Unión y en consulta MySQL
- Empleo sólo de dos (2) compañías nombradas
- No puede ser como máximo de 10 puestos de trabajo por empresa
he intentado el siguiente SELECT
con UNION DISTINCT
, pero el problema es que t él LIMIT 0,10
se aplica a todo el conjunto de resultados. Quiero que se aplique a cada una de las compañías.
Si no hay 10 trabajos por empresa, la consulta debe devolver todos los trabajos que encuentre.
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
Soy nuevo en MySQL, por lo que se dan cuenta de que puede haber una manera más inteligente de hacer esto en lugar de con UNION, por lo que cualquier sugerencia de mejora son definitivamente la bienvenida.
que iba por la documentación de MySQL que decía que ORDEN POR vino después de la UNIÓN ..... ¡y se olvidó de los paréntesis! Gracias –
@Mauro, che ne dici di accettare la risposta, se ti risolve il problema, eh?! -) Usa il segno di "checkmark" sotto il numero di upvotes (attualmente tre ...) ... –
Este funciona en MySql, pero no parece que SQLite admita esto en caso de que alguien se encuentre con esta pregunta en google –