Mah*_*ndi 3 php mysql laravel eloquent
我有两张桌子:
客户表 =
id,
score,
total_buy,
(该表有很多交易)
还有交易表
customer_id,
value,
score,
created_at,
(该表属于客户)
我想搜索有 5 笔交易的客户,其中一笔交易是在 2017 年 1 月 1 日创建的,并且客户得分和价值超过 200 并按随机顺序取 10 行(它是一个彩票系统)我在询问之前尝试此代码
customer::
whereHas('transactions', function ($query) use ($last_transaction)
{
$query->whereDate('created_at',$last_transaction);
})
->where('total_buy', '>=',$r->minvalue)
->where('score', '>=',$r->score)
->inRandomOrder()
->take($r->customernumber)
->get();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何计算哪里的行子关系
使用havingRaw()。
customer::
whereHas('transactions', function ($query) use ($last_transaction)
{
$query->havingRaw('COUNT(*) > 4');
})->
whereHas('transactions', function ($query) use ($last_transaction)
{
$query->whereDate('created_at',$last_transaction);
})
->where('total_buy', '>=',$r->minvalue)
->where('score', '>=',$r->score)
->inRandomOrder()
->take($r->customernumber)
->get();
Run Code Online (Sandbox Code Playgroud)
这将检查至少 5 transactions。如果需要exact5 个,则使用equal运算符。