我正在尝试从两个表中获取记录。
1-令牌 2-交易
两个表中都有相同的列user_id
,而tokens
表具有transaction_id
。我正在尝试获取与token
相关的所有交易。我正在尝试
$EarnedData = Token::whereIn('user_id', $descendants)
->whereHas('transaction', function($q){
$q->where('custom', '!=', 'BB')->orWhereNull('custom');
})->sum('amount');
调试之后,我从上面的脚本中获取了原始查询
select sum(`amount`) as aggregate from `tokens`
where
`user_id` in (15, 49, 58,117, 119, 120, 130, 13)
and exists
(select * from `transactions` where `tokens`.`transaction_id` = `transactions`.`id`
and (`custom` != 'BONUS' or `custom` is null))
当我执行查询时,我得到了NULL
,有人可以请我指导为什么查询没有得到记录。我要感谢。
答案 0 :(得分:0)
因为您永远不会->get();
得到结果!现在,$earnedData
变量包含已分析的查询,就好像您从未执行过该查询一样。
$earnedData = Token::whereIn('user_id', $descendants)
->whereHas('transaction', function($q) {
$q->where('custom', '!=', 'BB')->orWhereNull('custom');
})->sum('amount')
->get();