【问题标题】:MySQL COUNT Sub-query with SELECT *带有 SELECT * 的 MySQL COUNT 子查询
【发布时间】:2015-11-07 00:01:07
【问题描述】:

我有一个库存项目表(持有描述、项目详细信息等)、一个库存表(我们拥有的物理项目 - 库存项目)和一个供应商表(谁提供库存,但可能有所不同不时)。

供应商 -- 库存 -- 库存

库存有很多库存。供应商有很多库存。库存有一个供应商和一个库存

我正在尝试运行查询以从库存中获取所有数据,并通过子查询计算它拥有多少供应商。但是,我需要使用 SELECT *

我现在拥有的:

SELECT 
     ( SELECT COUNT(DISTINCT SupplierID) 
         FROM Stock 
        WHERE Stock.InventoryID = Inventory.ID
     ) AS Suppliers
     , * 
  FROM `Inventory`;

我已经尝试过这方面的变化,交换字段顺序(在本网站的其他地方看到),更改子查询等。

但是,它告诉我“* FROM”附近有一个错误。谁能建议一种方法来做这个查询?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    使用表别名:

    SELECT (SELECT COUNT(DISTINCT s.SupplierID) 
            FROM Stock s
            WHERE s.InventoryID = i.ID
           ) AS Suppliers, i.* 
    FROM `Inventory` i;
    

    * 上的资格要求在documentation 中有所描述:

    将不合格的* 与选择列表中的其他项目一起使用可能 产生解析错误。为避免此问题,请使用合格的 tbl_name.*参考

    SELECT AVG(score), t1.* FROM t1 ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 2013-01-30
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多