我有两个表,产品和股票。 Stock 与产品有多对一的关系。 Stock 表引用了产品表。 我想找到至少有一个参考库存的数量大于0的所有产品。
我应该使用哪种最有效的查询?
股票:id(bigint),数量(bigint),product_id(varchar)
由于
答案 0 :(得分:1)
这可能会对你有帮助。
SELECT p.product_id,s.quantity FROM dbo.Products p INNER JOIN dbo.Stock s
ON s.product_id= p.product_id GROUP BY p.product_id,s.quantity HAVING s.quantity>0
答案 1 :(得分:0)
您需要先加入两个表。这将返回一个新表格,其中包含所有库存记录及其产品详细信息,条件是数量大于零 然后,因为产品可以被多个库存记录引用,我们执行分组。
试试这个:
SELECT product.* FROM product INNER JOIN stock ON product.id = stock.product_id AND stock.quantity > 0 GROUP BY product_id
答案 2 :(得分:-1)
没有clouse
从p.id = s.pid
中的stock s join products p中选择p。*