MySQL 自關聯查詢


定義表areas,結構如下

  • id
  • atitle
  • pid
  • 因為省沒有所屬的省份,所以可以填寫為null
  • 城市所屬的省份pid,填寫省所對應的編號id
  • 這就是自關聯,表中的某一列,關聯了這個表中的另外一列,但是它們的業務邏輯含義是不一樣的,城市信息的pid引用的是省信息的id
  • 在這個表中,結構不變,可以添加區縣、鄉鎮街道、村社區等信息
  • 創建areas表的語句如下:
create table areas(
id int primary key,
atitle varchar(20),
pid int,
foreign key(pid) references areas(id)
);
  • 查詢一共有多少個省
  • 查詢省的名稱為“山西省”的所有城市
select city.* from areas as city
inner join areas as province on city.pid=province.id
where province.atitle='山西省';
  • 查詢市的名稱為“廣州市”的所有區縣
select dis.*,dis2.* from areas as dis
inner join areas as city on city.id=dis.pid
left join areas as dis2 on dis.id=dis2.pid
where city.atitle='廣州市';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM