MySQL的多对多查询,不会了,求教

省份表有3张分别是:辽宁、黑龙江、吉林
城市表有6张分别是:大连、沈阳、哈尔滨、齐齐哈尔、长春、四平
辽宁表对应大连、沈阳表
黑龙江表对应哈尔滨、齐齐哈尔表
吉林表对应长春、四平表
城市表中有字段:人口数
问题:查询每个省份的城市平均人口数
感谢各位大佬,我有点想不明白了

select avg(人口数) from 省份表 left join 城市表 on 省份表.省份表id=城市表.省份id group by 省份表.省份表id

这个表结构设计不合理啊。
为什么每个省、市都要建一个表啊?
不可以建一张省份表,每个省就相当于省份表中的一行数据,建立一张城市表,每个市都相当于城市表中的一行数据吗?
表多了,增删改查应该都不方便。

select avg(人口) from 省份表 right join 城市表 on 省份表.id=城市表.id group by avg(人口)