如何在 Laravel-5 中构建子查询 [重复]

Posted

技术标签:

【中文标题】如何在 Laravel-5 中构建子查询 [重复]【英文标题】:How to build subqueries in Laravel-5 [duplicate] 【发布时间】:2015-10-09 06:28:50 【问题描述】:

如何使用 Laravel-5 构建以下 mysql 查询?

select orders.*, oi.items from orders 
inner join (select order_id, group_concat(item_name SEPARATOR ', ') as items 
from orders_items group by order_id) as oi on oi.order_id = orders.id;

编辑

建议的link 没有解决我的问题,但我确实找到了解决方案,并将在下面发布给其他人。

【问题讨论】:

【参考方案1】:
$order  = $order->select('orders.*', 'oi.items');
$order->join(DB::raw('(select order_id, group_concat(item_name SEPARATOR ",") as items from orders_items group by order_id) as oi'), function($join)

    $join->on('oi.order_id', '=', 'orders.id');
);
$order->whereRaw('find_in_set ("'.$value.'", oi.items)');

$rows = $order->get();

【讨论】:

以上是关于如何在 Laravel-5 中构建子查询 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.8,在 where 子句中带有 Count(*) 的棘手子查询

如何使用 Laravel 的查询构建器执行嵌套连接?

如何在Laravel中将子数组元素导出为ex cel

仅从 Laravel 5.2 关系查询中选择特定列不起作用 [重复]

4 个连接 + 3 个 where 子句的查询构建器正确语法(Laravel 5.7)

雄辩的查询构建器laravel 5.6中的未知列