Tôi đang chạy một truy vấn đơn giản với một tham gia, tương tự nhưtruy vấn SQL với giới hạn trên các hàng từ một bảng, không phải là kết quả thiết
SELECT t1.a, t2.b FROM t1 LEFT JOIN t2 ON ... LIMIT 5
Như t1
có-nhiều hàng trong t2
(bất kỳ số lượng trên 2) tuyên bố LIMIT không trả về 5 hàng đầu tiên từ t1
và các mục tương ứng từ t2
, nhưng 5 hàng thường bao gồm 2-3 hàng từ t1
.
Tôi làm cách nào để viết truy vấn này để nhận 5 hàng đầu tiên từ t1
và các mục tương ứng từ t2
?
Sử dụng MySQL 5.0.45.
Xin lưu ý, giải pháp này có vấn đề về khả năng mở rộng với MySQL, cũng như không hoạt động nếu anh ấy muốn ORDER BY một trường trong t2. – hobodave
@hobodave May mắn thay, tôi 'ORDER BY' một trường trong t1. –
@Robert: Bạn có thể thấy rằng bạn cần phải áp dụng ORDER BY hai lần - một lần bên trong truy vấn bên trong để chọn năm hàng đầu tiên, và sau đó lại trong truy vấn bên ngoài để đảm bảo kết quả được trả về theo cùng thứ tự. –