select year,
(select amount from y m where month=1 and m.year=y.year) as m1,
(select amount from y m where month=2 and m.year=y.year) as m2,
(select amount from y m where month=3 and m.year=y.year) as m3,
(select amount from y m where month=4 and m.year=y.year) as m4
from y group by year
单独执行肯定报错了,你这是关联子查询。
关联了y表的year字段。
单独执行子查询,只有别名表m,没有表y,把y.year改为具体值。
select amount from y m where month=1 and m.year=y.year
改为
select amount from y m where month=1 and m.year='2021'
select amount from y m where month=1 and m.year=y.year
这个y.year的y指的是外查询(from y group by year)的y,y都不存在肯定报错了。