【发布时间】:2021-04-19 19:30:43
【问题描述】:
我想查询显示所有库存数量> 0 且不重复的产品。
我的查询:
$stock_products_limit = Stock::distinct('product_id')->where('quantity', '!=', 0)->get();
使用与股票相关的尺码表会更容易......但现在我没有它
我需要模型返回我,然后做一个 foreach:
@foreach($stock_products_limit as $stock_product)
@foreach($stock_product->product->product_images as $i=>$product_image)
...
@endforeach
...
@enforeach
在我的模型中,我建立了 hasMany 和 belongsTo 关系
我该如何进行查询?我一直在尝试独特的 group by ... 但对我来说没有任何效果。它只会删除数量为 0 的那些并重复产品 ID ...
我想要的查询示例:
SELECT DISTINCT(stocks.product_id)
FROM stocks
INNER JOIN products ON stocks.product_id = products.id
WHERE quantity != 0
ORDER BY product_id
LIMIT 10;
另一个示例查询(但 LIMIT 不适用于 IN)
SELECT * from products where id in (SELECT DISTINCT(product_id)
FROM stocks
INNER JOIN products ON stocks.product_id = products.id
WHERE quantity != 0
ORDER BY product_id)
【问题讨论】:
标签: laravel