【问题标题】:how to get latest record from table using joins in laravel?如何使用 laravel 中的连接从表中获取最新记录?
【发布时间】:2022-01-18 23:08:49
【问题描述】:

我最近开始研究 Laravel,现在我遇到了与问题相关的联接。 好人请调查一下你可能会帮助我。

我有两个表,一个是 cable_users,另一个是与主外键关系连接的 cable_transactions。 cable_users.id 与 cable_transactions.cableUser 相关

与该有线用户相关的所有事务都存储在 cable_transactions 表中,但现在我只想要 cable_transactions 表中的最新记录。

$customers = DB::table('cable_users')            
        ->leftJoin('cable_transactions', 'cable_users.id', '=', 'cable_transactions.cableUser')
        ->where('cable_users.status', 'active')           
        ->select('cable_users.id', 'cable_users.name', 'cable_users.mobile', 'cable_users.address', 'cable_users.packageName', 'cable_users.status','cable_transactions.packageAmount','cable_transactions.advanceRemaining', 'cable_transactions.advanceAmount', 'cable_transactions.pendingAmount', 'cable_transactions.updated_at')
        ->orderBy('cable_users.id','DESC')   
        ->orderBy('cable_transactions.updated_at','ASC')
        ->get()->toArray();

从上面的代码中,我得到了 cable_transactions 表中的所有数据

【问题讨论】:

标签: laravel


【解决方案1】:

尝试使用 take(1):

$customers = DB::table('cable_users')
->leftJoin('cable_transactions', 'cable_users.id', '=', 'cable_transactions.cableUser') ->where('cable_users.status', 'active')
->select('cable_users.id', 'cable_users.name', 'cable_users.mobile', 'cable_users.address', 'cable_users.packageName', 'cable_users.status','cable_transactions.packageAmount','cable_transactions.advanceRemaining', 'cable_transactions.advanceAmount', 'cable_transactions.pendingAmount', 'cable_transactions.updated_at') ->orderBy('cable_users.id','DESC')
->orderBy('cable_transactions.updated_at','ASC')
->take(1)
 ->get()->toArray();

【讨论】:

  • 您也可以使用 first() 方法代替 get() 来返回一个对象而不是数组。
  • 是的,这样会更好)
  • 谢谢@Underforest,但这只会返回单个数据。
猜你喜欢
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 2022-11-18
相关资源
最近更新 更多