ฉันมีusers
ตารางและpayments
ตารางสำหรับผู้ใช้แต่ละรายที่มีการชำระเงินอาจมีการชำระเงินที่เกี่ยวข้องหลายรายการในpayments
ตาราง ฉันต้องการเลือกผู้ใช้ทั้งหมดที่มีการชำระเงิน แต่เลือกเฉพาะการชำระเงินล่าสุดเท่านั้น ฉันกำลังลองใช้ SQL นี้ แต่ฉันไม่เคยลองใช้คำสั่ง SQL ที่ซ้อนกันมาก่อนเลยอยากรู้ว่าฉันทำอะไรผิด ขอบคุณสำหรับความช่วยเหลือ
SELECT u.*
FROM users AS u
INNER JOIN (
SELECT p.*
FROM payments AS p
ORDER BY date DESC
LIMIT 1
)
ON p.user_id = u.id
WHERE u.package = 1
Part 1 - Joins and Unions
คุณมีคำตอบที่ดีมาก :) คั่นหน้า!