我执行了这个查询:
SELECT
bookings.id
, bookings.confirmed_at
, bookings.disputed
, bookings.disputed_at
, bookings.no_show_blocked_until
, bookings.user_id
, bookings.refunded
, bookings.refunded_at
, invoices.id AS invoice_id
, invoices.state
, invoices.currency_to_eur
, lessons.time
FROM
bookings
LEFT JOIN invoice_lines
ON invoice_lines.booking_id = bookings.id
LEFT JOIN invoices
ON invoices.id = invoice_lines.invoice_id
LEFT JOIN lesson_bookings
ON lesson_bookings.booking_id = bookings.id
LEFT JOIN lessons
ON lessons.id = lesson_bookings.lesson_id
我的问题是我得到的分区显示了许多具有相同booking_id和invoice_id的记录,但与课程时间列的日期不同。对于具有相同预订 ID 和发票 ID 的记录,我只想获取最后日期的记录。请问我该怎么办?
示例:
booking_id invoice_id 日期
123 325 01/01/2020 123 325 01/02/2020 123 200 01/05/2020 123 300 01/05/2020 200 600 07/08/2020
我想得到的是:
123 325 01/02/2020 123 200 01/05/2020 123 300 01/05/2020 200 600 07/08/2020
答案 0 :(得分:0)
WHERE lessons.time =
(SELECT MAX(l.time)
FROM lessons l
WHERE l.id = lessons.id)