1
私は配列$shop_ids
を持っていますので、これらのIDをループしてSQL文のサブクエリに追加したいと思います。 SQLサブクエリの数は、IDの数と等しくなければなりません。@foreachをLaravelのSQL raw文に追加するには
私はこのようなクエリを期待するが、明らかに@foreach
は動作しませんし、ちょうどSQLクエリの一部となり:あなたは一例として、この方法を行うことができます
DB::select('select
pr.product_name,
pr.brand,
coalesce(pr.weight, pr.volume) wv,
sli.quantity
{{@foreach ($shop_ids as $id)
,{{(select
p.price
from prices p
inner join (
select p1.product_id id, max(p1.created_at) maxed_date
from prices p1
group by p1.product_id, p1.shop_id) grouped on grouped.maxed_date=p.created_at
join shop_names s on s.id=p.shop_id
where p.product_id=sli.product_id
and s.id=$id)}}}}
from shopping_list_items sli
join products pr on pr.id=sli.product_id
where sli.shopping_list_id= :slid
order by 5 asc', ['slid'=>$this->id])
作成ループ内の文字列、それに応じて連結します。 –
例を挙げてください。あなたが意味することを理解していない。ありがとうございました! –
なぜこのようなサブクエリを内部に入れたいのですが、どのような結果を得たいのですか? – jaro1989