Tôi đang cố gắng CHỌN 2 cột từ truy vấn con trong truy vấn sau, nhưng không thể làm như vậy. Đã thử tạo bảng bí danh, nhưng vẫn không thể có được chúng.
SELECT
DISTINCT petid,
userid,
(SELECT MAX(comDate) FROM comments WHERE petid=pet.id) AS lastComDate,
(SELECT userid FROM comments WHERE petid=pet.id ORDER BY id DESC LIMIT 1) AS lastPosterID
FROM
pet LEFT JOIN comments ON pet.id = comments.petid
WHERE
userid='ABC' AND
deviceID!='ABC' AND
comDate>=DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH);
Về cơ bản, tôi đang cố gắng lấy lastComDate
& lastPosterID
từ cùng một hàng - hàng mới nhất trong các nhận xét cho thú cưng cụ thể. Xin đề nghị làm thế nào tôi có thể nhận được chúng một cách hiệu quả.
Truy vấn trên hoạt động, nhưng có vẻ quá mức vì cùng một hàng được tìm nạp hai lần. Hơn nữa, ORDER BY
mệnh đề chậm hơn đáng kể so với hàm tổng hợp - như tôi đã tìm thấy trong khi định hình truy vấn. Vì vậy, một giải pháp tránh sắp xếp sẽ được đánh giá cao.
deviceID
từ pets
bảng - nghĩa là chỉ không làm cho tôi những vật nuôi được gửi bởi 'ABC' chính mình.