对于多表联合查询Count函数返回NULL

SELECT
	id,
	msg_title,
	msg_type,
	content,
	start_tasktime,
	end_tasktime,
	create_psn,
	create_time,
	update_psn,
	update_time,
	STATUS,
	readNum,
	time_num,
	CASE release_status
WHEN 0 THEN
	'未发布'
WHEN 1 THEN
	'已发布'
END release_status
FROM
	sys_message msg
LEFT JOIN (
	SELECT
		COUNT(pk_id) AS readNum,
		pk_id
	FROM
		sys_message_touser
	WHERE
		read_status = '1'
	GROUP BY
		pk_id
) AS num ON num.pk_id = msg.id
当我的sys_message_touser表中符合条件的数据为0个时,一直返回NULL,改成这样就好了
SELECT
	id,
	msg_title,
	msg_type,
	content,
	start_tasktime,
	end_tasktime,
	create_psn,
	create_time,
	update_psn,
	update_time,
	STATUS,
	COALESCE (readNum, 0) readNum,
	time_num,
	CASE release_status
WHEN 0 THEN
	'未发布'
WHEN 1 THEN
	'已发布'
END release_status
FROM
	sys_message msg
LEFT JOIN (
	SELECT
		COUNT(pk_id) as readNum,
		pk_id
	FROM
		sys_message_touser
	WHERE
		read_status = '1'
	group by
		pk_id
) as num ON num.pk_id = msg.id
COALESCE函数可以传入多个参数,如果所有参数都为NULL则返回NULL,否则返回第一个不为NULL的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值