我使用IFNULL
的原因是将空字段更改为0.但我总是收到此错误:
错误代码:1054。'on clause'
中的未知列'inc.month_id'
这是我的Mysql查询:
SELECT * FROM tbl_month
left joins
(
select ifnull(tbl_income.rentals,0) as rentals, ifnull(tbl_income.electric,0) as electric, ifnull(tbl_income.month_id,0) as month_id
from tbl_income
where tbl_income.igp_id = 1
) as inc on tbl_month.month_id = inc.month_id;
编辑:我手动添加了所有列,但空字段不会被0替换。
输出:
答案 0 :(得分:0)
这是因为left join
;使用inner join
或将ifnull
放在主要选择中不在子查询中:
SELECT
ifnull(inc.rentals,0) as rentals,
ifnull(inc.electric,0) as electric,
ifnull(inc.month_id,0) as month_id,
...
FROM tbl_month t1
left join tbl_income as inc on t1.month_id = inc.month_id;
答案 1 :(得分:-1)
您遇到的问题是您没有在临时表'inc'中命名该列。
你有这个
ifnull('*',0)
但应该
ifnull('*',0) as month_id
。
注意:
ifnull('*',0)
始终会'*'
。
如果您只想验证month_id
列,则必须按照此类
ifnull(month_id,0) as month_id