我已经对这个主题进行了广泛的搜索,但基于我对laravel和雄辩的一点知识(我是新手),由于很多信息I&#39,我对如何完全感到困惑。读完了。
我有两张桌子:产品和logrent。
products->[id, name, stock]
logrent->[id, product_id, user_id, action]
当产品被出售时,在logrent表上生成一个寄存器,其中包含此操作的值(1表示租用,2表示退回租用产品)
我想构建一个反映每个产品上的操作的雄辩查询,根据logrent表上的租金/回报更新实际股票价值(如果可能,在另一个虚拟列中更新)
我怎么能做到这一点?
修改
这就是我想要的,但在Eloquent中,我能实现这一目标吗?如何?
select jogos.id, jogos.titulo, (jogos.qt + (select sum(case
fluxos.tipoacao when 2 then 1 when 1 then -1 end) from `fluxos` where
fluxos.jogo_id=jogos.id)) as stock from jogos, fluxos group by id;
答案 0 :(得分:0)
$data = \DB::table("jogos")
->select("jogos.id", "jogos.titulo", "jogos.qt",
\DB::raw("(select
sum(case fluxos.tipoacao when 2 then 1 when 1 then -1 end)
from `fluxos` where fluxos.jogo_id=jogos.id) as stock")->get()