查找另一个表引用的SQL记录

时间:2018-03-10 09:35:23

标签: sql

我有两个表,产品股票 Stock 产品有多对一的关系。 Stock 表引用了产品表。 我想找到至少有一个参考库存的数量大于0的所有产品。

我应该使用哪种最有效的查询?

股票:id(bigint),数量(bigint),product_id(varchar)

由于

3 个答案:

答案 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)

您需要先加入两个表。这将返回一个新表格,其中包含所有库存记录及其产品详细信息,条件是数量大于零 然后,因为产品可以被多个库存记录引用,我们执行分组。

请参阅inner joingroup by

试试这个:

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。*