codeigniter 同一表上Group by不返回最近的记录

83qze16e  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(115)

我的预约表中有包含患者信息的记录。当我尝试使用group by获取最新的患者预约时,它没有给予正确的结果。我使用了group by和order by。附加了表架构和查询

查询:

SELECT * FROM `appointment` where appointment.patient = 2650 group by appointment.patient 
order by appointment.id desc

以上查询返回id为6718的记录
注:在此查询中,我仅为一名患者添加了Where条件,我希望获得所有患者的最新预约。

9jyewag0

9jyewag01#

我是否理解正确,您只需要每个患者的最后一个预约编号?如果是,它是否解决了您的问题?如果不是,请提供预期的输出。

select max(id) as last_appt, patient
from appointment
group by patient
order by patient;

下面是dbfiddle示例

h7wcgrx3

h7wcgrx32#

如果你有Laravel模型设置它就像这样容易

Appointment::where('patient', 2650)->orderByDesc('id')->get();

另外,我不建议按Id排序,因为您有add_date列,我建议这样使用它:orderByDesc('add_date')

相关问题