我有一个查询,检索团队所做的预订 查询计算并检索好,但问题是我只想检索团队所做的最新预订,但我的查询显示他们的第一个预订。
这是完整的查询
select
tbl_lab_reservations.id,
tbl_lab_reservations.full_desc,
serial_number,
rsvn_owner,
reservation_id,
reservation_date_end,
reservation_date_start,
(SELECT DATEDIFF( if(reservation_date_end = '0000-00-00', CURDATE(), reservation_date_end),
reservation_date_start)+1) as totalNumberOfDaysReserve
from tbl_lab_reservations
join tbl_lab_assets on tbl_lab_assets.id = tbl_lab_reservations.lab_id
where tbl_lab_reservations.full_desc = 'Dell Optiplex 380'
and tbl_lab_reservations.asset_status = 'Idle'
group by serial_number, rsvn_owner
ORDER BY tbl_lab_reservations.id ASC
答案 0 :(得分:0)
您提供的查询对于显示从第一个到最新的记录是正确的,因为order by子句是asc。要检索最新记录,
将order by子句更改为desc
您将从中获得最新记录作为结果中的第一个记录(仅当您 tbl_lab_reservations.id对于所有记录时才是唯一的。)
要获取最新记录并省略另一条记录,您需要使用limit关键字。应在查询结尾处使用该限制来设置要获取的记录的限制。
语法:限制N,其中N指定记录数。
您的示例。
char