Laravel Eloquent在SQL的select部分中设置子查询

时间:2016-04-13 02:11:39

标签: sql laravel eloquent

SELECT *, (
    SELECT count(id) FROM order_history oh 
    WHERE oh.refund_of = oh1.id
) "refunds"
FROM order_history oh1 
WHERE `object_name` 
NOT LIKE '%refund%'

我需要在不使用Db :: raw

的情况下将其转化为雄辩

1 个答案:

答案 0 :(得分:1)

您应该可以使用方法select()addSelect()添加子选择查询,如图所示here

示例:

select(DB::raw(count(id) FROM order_history oh WHERE oh.refund_of = oh1.id))
  

注意:“这些表达式将作为字符串注入到查询中,因此请注意不要创建任何SQL注入点!”