SELECT
f.province AS loc,
IFNULL(COUNT(f.province), 0) AS count
FROM
project_name_data d
RIGHT JOIN full_province f ON (
TRIM(
REPLACE (
REPLACE (
SUBSTRING_INDEX(d.location, '|', 1),
'省',
''
),
'壮族',
''
)
) = f.province
)
GROUP BY
loc;
其中project_name_data为数据源所在表, full_province为全国所有省份的结果,现在想统计每个省对应的数据数量,如果不存在则填0,现在SQL运行后显示的只有数据源表中存在的省份,没有full_province - project_name_data这部分,求解
f.province AS loc,
IFNULL(COUNT(f.province), 0) AS count
FROM
project_name_data d
RIGHT JOIN full_province f ON (
TRIM(
REPLACE (
REPLACE (
SUBSTRING_INDEX(d.location, '|', 1),
'省',
''
),
'壮族',
''
)
) = f.province
)
GROUP BY
loc;
其中project_name_data为数据源所在表, full_province为全国所有省份的结果,现在想统计每个省对应的数据数量,如果不存在则填0,现在SQL运行后显示的只有数据源表中存在的省份,没有full_province - project_name_data这部分,求解
COUNT(f.province)的值不可能是NULL,只能是一个正整数。所以,IFNULL函数,有没有,都一样。
另外,如果没有返回行,IFNULL也不会有作用,需要关联其他表,用LEFT JOIN。