先化繁为简,再步步整合
create table areas(
aid int primary key, atitle varchar(20), pid int );
insert into areas values
('130000', '河北省', NULL),
('130100', '石家庄市', '130000'),
('130400', '邯郸市', '130000'),
('130600', '保定市', '130000'),
('130700', '张家口市', '130000'),
('130800', '承德市', '130000'),
('410000', '河南省', NULL),
('410100', '郑州市', '410000'),
('410300', '洛阳市', '410000'),
('410500', '安阳市', '410000'),
('410700', '新乡市', '410000'),
('410800', '焦作市', '410000');
此为建表数据,问题:查询河南所有的区县
横跨1级,不涉及到市
对应代码:
select * from areas as sheng,areas as shi,areas as qu
where shi.pid=sheng.aid and qu.pid=shi.aid
先把对应的所有表格分别再EXCEL上画出来,一步步探索要实现问题的要求第一步应该怎么做,最后步步整合
注意:在涉及到复杂问题(本题中体现为多个表)最好使用 别名