带有SELECT *

时间:2015-11-06 15:44:45

标签: mysql sql

我有一个库存项目表(保存说明,项目详情等),库存表(我们拥有的实物项目 - 库存项目)和供应商表格(供应库存,但可能不同)不时)。

供应商 - 库存 - 库存

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

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

我现在所拥有的:

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

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

然而,它告诉我'* FROM'附近有错误。有人可以建议一种方法来做这个查询吗?

1 个答案:

答案 0 :(得分:1)

使用表别名:

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

*

中描述了对*的资格认证的需求
  

在选择列表中使用不合格的tbl_name.*和其他项目可能   产生一个解析错误。要避免此问题,请使用合格的   SELECT AVG(score), t1.* FROM t1 ... 参考

SetWindowCompositionAttribute