如何在MySQL中为Laravel选择Created_at列中的最新日期

问题描述 投票:0回答:1

我在Laravel项目中有三个数据库表(借款人,储蓄,Savings_Transaction]。我的目的是显示过去30天内没有任何储蓄交易的休眠帐户。

在借款人的表中,我有类似的列

  1. id
  2. 名字
  3. 姓氏

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9ubjZBNy5wbmcifQ==” alt =“借款人表”>“>

在我的储蓄表中,我有

  1. id(auto_incremenent)
  2. Borrower_id(借阅人表的拾取ID)
  3. “保存表”“>

    在我的Savings_transaction表中,我有

  1. id(auto_incremenent)
  2. savings_id(从储蓄表中提取ID)
  3. 借款人ID(从借款人表中获取ID)
  4. 创建日期(记录交易的日期)
  5. “

    每个借款人都有一个储蓄帐户,该帐户记录在储蓄表中。每当他们进行交易时,它都会记录在SavingsTransaction表中。

在每笔交易中,都记录了owner_id,Savings_id和created_at。

现在,我要选择在过去30天内未使用此代码进行过任何交易的借款人(休眠帐户/会员)

public function dormant()
{



        $dormant = SavingTransaction::where('reversed', 0)->where('branch_id',
            session('branch_id'))->whereDate('created_at','<=', Carbon::now()->subDays(30))->groupBy('savings_id','created_at')->orderBy('created_at', 'asc')->get();


    return view('saving.dormant',
        compact('dormant'));
}

但是它将把所有交易日期少于30天且超过30天的账户都带到这里>

如何删除最近交易的帐户?

我的Laravel项目中有三个数据库表(借款人,储蓄,Savings_Transaction)。我的目的是显示过去30天内未进行任何储蓄交易的休眠帐户。在我的...

现在,我要选择在过去30天内未进行任何交易的借款人

您必须选择借款人而不是SavingTransaction

// suppose "savingTransactions" is hasMany relation defined in Borrowers model
$result = Borrowers::whereDoesntHave('savingTransactions', function($queryBuilder){
  $queryBuilder->whereDate('created_at','<=', Carbon::now()->subDays(30));
})->get();

如果没有关系,也可以使用->whereNotExists(...)

php mysql laravel
1个回答
0
投票

现在,我要选择在过去30天内未进行任何交易的借款人

© www.soinside.com 2019 - 2024. All rights reserved.