mysql返回N/A

在写统计图的接口,sql查询一直无数据,给的默认值也没有实现:

SELECT
	ifnull( unit.num, 0 ) riskUnitCount,
	ifnull( EVENT.num, 0 ) riskEventCount,
	ifnull( measure.num, 0 ) riskMeasureCount
FROM
	tb_company
	LEFT JOIN (
	SELECT
		risk.qyid,
		count( unit.id ) num 
	FROM
		HAZARD_INFO risk,
		double_risk_unit unit 
	WHERE
		risk.id = unit.HAZARD_ID 
		AND risk.STATUS = 1 
		AND unit.STATUS = 1 
	GROUP BY
		risk.qyid 
	) unit ON unit.qyid = tb_company.id
	LEFT JOIN (
	SELECT
		risk.qyid,
		count( EVENT.id ) num 
	FROM
		HAZARD_INFO risk,
		double_risk_unit unit,
		double_risk_event EVENT 
	WHERE
		risk.id = unit.HAZARD_ID 
		AND unit.ID = EVENT.RISK_UNIT_ID 
		AND risk.STATUS = 1 
		AND unit.STATUS = 1 
		AND EVENT.STATUS = 1 
	GROUP BY
		risk.qyid 
	) EVENT ON EVENT.qyid = tb_company.id
	LEFT JOIN (
	SELECT
		risk.qyid,
		count( measure.id ) num 
	FROM
		HAZARD_INFO risk,
		double_risk_unit unit,
		double_risk_event EVENT,
		double_risk_measure measure 
	WHERE
		risk.id = unit.HAZARD_ID 
		AND unit.ID = EVENT.RISK_UNIT_ID 
		AND EVENT.ID = measure.RISK_EVENT_ID 
		AND risk.STATUS = 1 
		AND unit.STATUS = 1 
		AND EVENT.STATUS = 1 
		AND measure.STATUS = 1 
	GROUP BY
		risk.qyid 
	) measure ON measure.qyid = tb_company.id 
WHERE tb_company.STATUS = 1 AND tb_company.sfsjlzdyzd = 1 
	AND tb_company.id = 'f6'

这代表没有结果集,就是连字段都没有,不是字段的值为空
从返回结果可以看出“这代表没有结果集,就是连字段都没有,不是字段的值为空”,中间的业务各种GROUP BY,都是临时表,没有实际字段,再经过“AND tb_company.id = ‘f6’“筛选,就是没有结果集,找不到,ifnull也不生效。

二、sql没动,就是给查询结果增加”COUNT(*) “后,实现了我需要的效果,虽然这个字段用不到。
在这里插入图片描述
其他字段也有了默认值。

三、原因不明,效果实现了。

四、使用的mysql版本。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值