mysql count带回至少1行

时间:2011-08-15 09:47:47

标签: mysql count

我最近搬了工作,从使用T-SQL到MySql。到目前为止一直很好,直到今天。

我正在运行以下sql脚本:

 SELECT PB.idproductbundle AS ID, 
         PB.Name AS Name,
         PB.Discount AS Discount,
         PB.DiscountIsPercent AS DiscountIsPercent,  
         COUNT(PB_P.idproductbundle) AS ProductCount
 FROM `mydb`.productbundles AS PB
 LEFT JOIN `mydb`.ProductBundle_Product PB_P ON PB_P.idproductbundle = PB.idproductbundle

简单的命令,可以带回所有产品包,并计算该捆绑包中的产品数量。

奇怪的是,表格中目前没有数据:productbundles或ProductBundle_Product。

但它确实会带回1排。所有列都是默认值:

ID名称折扣DiscountIsPercent ProductCount

NULL,NULL,NULL,NULL,'0'

在T-Sql中,这将没有行。

2 个答案:

答案 0 :(得分:4)

因为select中有一个COUNT子句,如果没有满足查询的行,它将返回零。所以你保证至少有一行--COUNT的结果告诉你零行。

答案 1 :(得分:0)

原来我错过了一个小组:/

 SELECT PB.idproductbundle AS ID, 
         PB.Name AS Name,
         PB.Discount AS Discount,
         PB.DiscountIsPercent AS DiscountIsPercent,  
         COUNT(PB_P.idproductbundle) AS ProductCount
 FROM `ukiss-order-management`.productbundles AS PB
 LEFT JOIN `ukiss-order-management`.ProductBundle_Product PB_P ON PB_P.idproductbundle = PB.idproductbundle
 GROUP BY PB.idproductbundle