如何在mysql

时间:2015-08-14 07:19:59

标签: mysql group-by

我有一个查询,检索团队所做的预订 查询计算并检索好,但问题是我只想检索团队所做的最新预订,但我的查询显示他们的第一个预订。

这是完整的查询

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

1 个答案:

答案 0 :(得分:0)

您提供的查询对于显示从第一个到最新的记录是正确的,因为order by子句是asc。要检索最新记录,

  

将order by子句更改为desc

您将从中获得最新记录作为结果中的第一个记录(仅当您 tbl_lab_reservations.id对于所有记录时才是唯一的。)

要获取最新记录并省略另一条记录,您需要使用limit关键字。应在查询结尾处使用该限制来设置要获取的记录的限制。

语法:限制N,其中N指定记录数。

您的示例。

link

char