Tôi có một Jobs và ty bảng, và tôi muốn trích xuất 20 công việc đáp ứng các tiêu chí sau:Kết hợp UNION và các hoạt động LIMIT trong truy vấn MySQL
- Jobs chỉ từ hai (2) các công ty có tên
- có thể nhiều nhất là 10 việc làm mỗi công ty
tôi đã thử những điều sau SELECT
với UNION DISTINCT
, nhưng vấn đề là t ông LIMIT 0,10
áp dụng cho toàn bộ tập hợp kết quả. Tôi muốn nó áp dụng cho từng công ty.
Nếu không có 10 công việc cho mỗi công ty, thì truy vấn sẽ trả về tất cả công việc mà nó tìm thấy.
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
Tôi mới sử dụng MySQL, vì vậy hãy nhận ra có cách thông minh hơn để thực hiện việc này thay vì với UNION, vì vậy mọi đề xuất cải tiến chắc chắn được hoan nghênh.
tôi đã đi bằng tài liệu MySQL cho biết ORDER BY đến sau UNION ..... và quên mất các dấu ngoặc đơn! Cảm ơn –
@Mauro, che ne dici di accettare la risposta, se be risolve il problema, eh?! -) Usa il segno di "dấu kiểm" sotto il numero di upvotes (attualmente tre ...) ... –
Điều này hoạt động trong MySql, nhưng nó không giống như SQLite hỗ trợ điều này trong trường hợp bất cứ ai chạy vào câu hỏi này trên google –