我在分组时遇到了这个问题 account_name
以及 ad_name
,但有些记录具有相同的 account_name
以及 ad_name
当有不同的 ad_id
s(我用它来连接我的关系)-所以我最终没有连接我所有的记录。
...
$selectList = [
DB::raw("any_value(ad_id) as ad_id"),
DB::raw("ad_name"),
...
];
$query = Facebook::query()
->with(['cake:subid_1,price'])
->select($selectList)
->groupBy('ad_name', 'account_name');
...
我的关系是这样的:
public function cake()
{
return $this->hasMany(Cake::class, 'subid_1', 'ad_id');
}
这是它产生的基本查询:
但我认为真正能解决我问题的是这样一个问题:
SELECT `price`,
`subid_1`
FROM `cake_performance_data`
WHERE `cake_performance_data`.`subid_1` IN
(SELECT ad_id
FROM cake_performance_data
WHERE ad_name IN ($arrayOfAdNames))
我能不能用雄辩的或者其他的解决方案来实现同样的最终目标呢。
1条答案
按热度按时间mpbci0fu1#
我想你有
$adNames
在上下文中,现在您的代码不包含它。你可以过滤你的信息
with()
使用和键值语法。其次,可以在中使用子查询WhereIn()
通过关闭。