我正在尝试拉出一组自指定日期以来未进行过交易的用户。
这是我的疑问:
$notActive = DB::table('transactions')
->join('users','transaction.user_id', '=', 'users.user_id' )
->select(DB::raw('users.user_id, users.name, max(transaction.last_posted_date) AS lastDate'))
->groupBy('users.user_id')
->where('lastDate', '<', ''.$not.'');
return Datatables::of($notActive)
->make(true);
$ not是拉入的日期值。这会产生ajax数据表错误。我尝试了多种方法,包括在where子句中为最大日期放置一个select语句,但它不断抛出错误。有没有更好的方法来查询我想要的数据?感谢。
答案 0 :(得分:1)
我明白了!使用having子句提示那些日期小于输入字段提供日期的交易的用户(即自动不活动)
$notActive = DB::table('transactions')
->join('users','transactions.user_id', '=', 'users.user_id' )
->select(DB::raw('users.user_id, users._name, max(transactions.last_posted_date) as last_posted_date'))
->groupBy('users.user_id')
->having('transactions.last_posted_date', '<', ''.$not.')');
return Datatables::of($latestTransactions)
->make(true);