mysql计数返回至少1行

mysql计数返回至少1行,mysql,count,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 Produc

我最近换了工作,从一个使用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\u Product

但它意味着带回1排。所有列都是其默认值:

ID Name折扣折扣商品计数

NULL,NULL,NULL,NULL,“0”


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

因为在select中有一个COUNT子句,如果没有满足查询的行,该子句将返回零。因此保证至少有一行—计数的结果告诉您有零行。

因为select中有一个COUNT子句,如果没有满足查询的行,该子句将返回零。因此,保证至少有一行-计数结果告诉您有零行。

结果表明,我缺少一组,原因是:/

 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

结果发现我错过了一个小组:/

 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

有办法解决这个问题吗?必须是一个常见的查询。您可以在业务逻辑中处理它。有一个条件检查计数是否为0,其他字段是否为空,并且有一行是精确的,然后将其视为空结果集。是否有方法处理此问题?必须是一个常见的查询。您可以在业务逻辑中处理它。使用条件检查计数是否为0,其他字段是否为空,并且是否有一行,然后将其视为空结果集。