Mam Jobsa a Firmy tabeli, a chcę, aby wyodrębnić 20 miejsc pracy, które spełniają następujące kryteria:Łącząc Unii oraz operacje LIMIT w zapytaniu MySQL
- Praca tylko z dwóch (2) nazwie firmy
- Nie może być co najwyżej 10 miejsc pracy na spółkę
próbowałem następujących SELECT
z UNION DISTINCT
, ale problemem jest to, że t on LIMIT 0,10
dotyczy całego zestawu wyników. Chcę, żeby dotyczyła każdej z firm.
Jeśli w firmie nie ma 10 zadań, zapytanie powinno zwrócić wszystkie znalezione zadania.
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
Jestem nowym do MySQL, więc sobie sprawę, że może być lepszy sposób to zrobić, zamiast z Unią, więc wszelkie sugestie dotyczące ulepszenia są z pewnością mile widziane.
ja jechałem przez dokumentacja MySQL, która powiedziała, że ORDER BY przyszła po UNII ..... i zapomniała o nawiasach! Dzięki –
@Mauro, che ne dici di accettare la risposta, se ti risolve il problema, eh?! -) Usa il segno di "znacznik wyboru" sotto il numero di upvotes (attualmente tre ...) ... –
This działa w MySql, ale nie wygląda na to, że SQLite obsługuje to na wypadek, gdyby ktoś wpadł na to pytanie w google –