Ok, cần một chuyên gia MySQL tại đây. Tôi đang cố gắng để viết một truy vấn sẽ phục vụ như một hệ thống thông báo cho khi ai đó để lại một bình luận về một mục mà bạn đã nhận xét trước đó. Bàn 'bình chọn đồ uống' rất đơn giản:Truy vấn con MySQL với biến dữ liệu truy vấn chính
commentID, userID, drinkID, datetime, comment
Tôi đã viết một truy vấn nhận xét về đồ uống mà trước đó tôi đã nhận xét (không phải của tôi), nhưng vẫn sẽ hiển thị nhận xét đã xảy ra TRƯỚC KHI bình luận của tôi. Điều này là gần với những gì tôi nghĩ rằng sẽ làm việc, nhưng nó không. Hãy giúp tôi!
select @drinkID:=drinkComments.drinkID, commentID, drinkID, userID, comment, datetime
FROM drinkComments
WHERE `drinkID` IN
(select distinct drinkID from drinkComments where drinkComments.userID = 1)
AND drinkComments.dateTime > (
/*This gets the last date user commented on the main query's drinkID*/
select datetime FROM drinkComments WHERE drinkComments.userID = 1 AND drinkComments.drinkID = @drinkID ORDER BY datetime DESC LIMIT 1
)
ORDER BY datetime DESC
Giải pháp rất hay! Hoạt động và hoạt động nhanh hơn! Cảm ơn! – adamweeks
@AdamWeeks, chúng tôi cố gắng cung cấp các giải pháp hiệu quả khi trợ giúp người khác ... Bạn luôn có thể thay đổi câu trả lời "đã chọn" để giúp những người tương lai có được giải pháp tốt hơn chỉ là giải pháp đầu tiên. – DRapp
+1 Hướng dẫn truy vấn phụ tuyệt vời. Không nhận ra tôi cần truy vấn phụ trong phần 'FROM' để truy cập kết quả của nó trong truy vấn chính – foochow