我最近搬了工作,从使用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中,这将没有行。
答案 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