You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取目标表最新的created_at和updated_at字段

问题

现有一段Laravel查询代码,关联了patrol_gate_surveillance_transactions、client_locations、clients三张表,用于分组统计各地点的员工出入数量。现在需要在查询结果中,额外获取每组对应的patrol_gate_surveillance_transactions表中最新的created_at和updated_at字段,传递到Blade模板使用。

现有代码
$datas = DB::table('patrol_gate_surveillance_transactions as a')
    ->leftJoin('client_locations as b','a.client_location_id', 'b.id')
    ->leftJoin('clients as c', 'b.client_id', 'c.id')
    ->select('a.client_location_id as location_id', 'b.name as location_name', 'c.name as client_name',
        DB::raw('SUM(CASE WHEN a.type = 1 THEN employee_qty ELSE 0 END) as e_qty_in'),
        DB::raw('SUM(CASE WHEN a.type = 2 THEN employee_qty ELSE 0 END) as e_qty_out')
    )
    ->groupBy('location_id', 'location_name', 'client_name')
    ->get(); 
数据表说明
  • patrol_gate_surveillance_transactions表:包含created_at、updated_at、client_location_id、type、employee_qty等字段,记录员工出入数据
  • client_locations表:包含id、client_id、name字段,存储地点信息
  • clients表:包含id、name字段,存储客户信息
需求

查询结果中需包含每组对应的patrol_gate_surveillance_transactions表最新的created_at和updated_at字段,用于Blade模板解析。

解决方案

要获取每组最新的时间字段,可通过聚合函数MAX()来获取分组内最大的created_at和updated_at(即最新的记录时间),修改后的查询代码如下:

$datas = DB::table('patrol_gate_surveillance_transactions as a')
    ->leftJoin('client_locations as b','a.client_location_id', 'b.id')
    ->leftJoin('clients as c', 'b.client_id', 'c.id')
    ->select('a.client_location_id as location_id', 'b.name as location_name', 'c.name as client_name',
        DB::raw('SUM(CASE WHEN a.type = 1 THEN employee_qty ELSE 0 END) as e_qty_in'),
        DB::raw('SUM(CASE WHEN a.type = 2 THEN employee_qty ELSE 0 END) as e_qty_out'),
        // 获取分组内最新的created_at
        DB::raw('MAX(a.created_at) as latest_created_at'),
        // 获取分组内最新的updated_at
        DB::raw('MAX(a.updated_at) as latest_updated_at')
    )
    ->groupBy('location_id', 'location_name', 'client_name')
    ->get(); 

修改后,查询结果的每条数据会新增latest_created_at和latest_updated_at字段,对应该地点分组下最新的记录时间,可直接在Blade模板中调用。

内容的提问来源于stack exchange,提问作者stackover flow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:05:31