【发布时间】:2020-10-19 08:26:32
【问题描述】:
我需要使用 DB 查询构建器将以下原始查询转换为 Laravel 查询的帮助。查询必须使用 DB(外观)查询构建器而不是 Eloquent 构建。
SELECT distinct p.client_id
FROM people p
JOIN (SELECT client_id, COUNT(*)
FROM people
GROUP BY client_id
HAVING count(client_id) > 1 ) b
ON p.client_id = b.client_id
ORDER BY p.client_id')
这是我目前的解决方案:
$subQuery = DB::table('people')
->select('client_id', DB::raw('count(*)'))
->groupBy('client_id')
->havingRaw('count(client_id) > ?', [1]);
$mainQuery = DB::table('people')
->distinct('client_id')
->joinSub($subQuery, 'b', function ($join) {
$join->on('people.client_id', '=', 'b.client_id');
})
->orderBy('client_id')
->get();
【问题讨论】:
-
在寻求帮助之前,您应该向我们展示自己尝试解决问题的方法。像这样的问题是请求代码而不是请求帮助。
-
很抱歉您将我的评论解读为负面。我会改写它。请向我们展示您解决问题的尝试,以便我们更好地帮助您。这个问题目前的形式不适合 SO,因为它太宽泛了。
标签: sql database laravel laravel-query-builder laravel-facade