首页 > 解决方案 > 如果左连接表中的值不为空,则获取计数

问题描述

SELECT o.*, g.goods_tax_price_percent, p.*
  FROM `ecs_order_goods` AS o
     LEFT JOIN `ecs_order_goods` AS p
        ON p.product_id = o.product_id
     LEFT JOIN `ecs_goods` AS g
         ON o.goods_id = g.goods_id
     WHERE o.order_id = '93' ORDER BY goods_id

g.goods_tax_price_percent如何获得非空值的总数?

我试过 SELECT COUNT(g.goods_tax_price_percent IS NOT NULL) AS tax_item 不工作

我的表示例

---------------------------
TABLE : esc_goods
----------------------------
id | goods_tax_price_percent
----------------------------
1  | NULL
2  | 10
3  | 30
4  | NULL
---------------------------- 

我想要的结果

我要COUNT(g.goods_tax_price_percent IS NOT NULL) AS tax_item=2

标签: sql

解决方案


您可以使用count()

SELECT COUNT(g.goods_tax_price_percent) as tax_item
FROM ecs_order_goods o LEFT JOIN
     ecs_order_goods p 
     ON p.product_id = o.product_id LEFT JOIN
     ecs_goods g
     ON o.goods_id = g.goods_id
WHERE o.order_id = 93 ;

LEFT JOIN可能是INNER JOIN这个查询的一个。


推荐阅读