【问题标题】:Finding SQL records referenced by another table查找另一个表引用的 SQL 记录
【发布时间】:2018-03-10 09:35:22
【问题描述】:

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

我应该使用什么最有效的查询?

库存:id(bigint)、数量(bigint)、product_id(varchar)

谢谢

【问题讨论】:

  • 您需要 加入 表,但如果没有更多信息,很难提供详细信息:编辑您的问题以提供至少最重要列的名称和主要列的名称键。
  • 请使用我发布的答案。
  • 您使用的是哪个DBMS? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标签postgresqloraclesql-serverdb2、...
  • 我正在使用 MySQL

标签: sql


【解决方案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

【讨论】:

    【解决方案2】:

    您需要先连接这两个表。这将在数​​量大于零的情况下返回一个包含所有库存记录及其产品详细信息的新表。
    然后因为一个产品可以被多个库存记录引用,我们进行分组。

    inner joingroup by

    试试这个:

    SELECT product.* FROM product INNER JOIN stock ON product.id = stock.product_id AND stock.quantity > 0 GROUP BY product_id
    

    【讨论】:

      【解决方案3】:

      没有隔阂

      select p.* from stock s join products p on p.id = s.pid

      【讨论】:

      • 这还不够,你跳过了与数量有关的部分。
      • 我假设库存中没有零值记录
      猜你喜欢
      • 2012-08-16
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-20
      • 2010-09-26
      • 2020-06-14
      相关资源
      最近更新 更多