mysql外联多表查询
生活随笔
收集整理的這篇文章主要介紹了
mysql外联多表查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
🔑 外聯查詢,就是把兩張表按照某個條件合并成一張新表
- 比如說:學生數據,課程數據,班級數據,這些數據不可能全部寫在同一張表里面,肯定是分成三張表,每張表只存對應的數據,當需要的時候,使用外聯查詢把這些數據串成一張某些字段我們需要的表
案例:
?? 首先有下面三張表
c_s_uuid:學生唯一標識
c_s_name: 學生姓名
c_s_class: 所學課程的uuid
2.課程表
c_uuid: 課程唯一標識
c_name: 課程名
c_add: 上課地址唯一標識
3.上課地點表
c_d_uuid: 上課地點唯一標識
c_d_pos: 上課地點
?? 需求:獲取學生,學生上課地址兩個字段的一張表(或者視圖),如下圖:
步驟一:先把學生表和課程表進行外聯組合
SELECT* FROMc_student AS aLEFT JOIN c_leason AS b ON b.c_uuid = a.c_s_class得到表:
步驟二:接下來用這張外聯出來新表去外聯上課地點表
SELECT* FROMc_student AS aLEFT JOIN c_leason AS b ON b.c_uuid = a.c_s_classLEFT JOIN c_address AS c ON c.c_d_uuid = b.c_add # 注意! 我們要外聯的條件字段是從哪張表合并過來的, # 就去哪張表里取。雖然說外聯之后得到了一張新的表,但是取新表的字段的時候,還是要從舊表里面找得到表:
步驟三:從上面這張兩次外聯的表中得到字段數據,組成新的表(視圖)
# 取的規則也是和外聯的規則一樣,雖然外聯之后合并成了新表,但拿字段的時候還是要從字段來的那張表拿SELECTa.c_s_name, # 學生姓名的字段在a表上c.c_d_pos # 上課地點字段在c表上 FROMc_student AS aLEFT JOIN c_leason AS b ON b.c_uuid = a.c_s_classLEFT JOIN c_address AS c ON c.c_d_uuid = b.c_add最后的結果:
總結
以上是生活随笔為你收集整理的mysql外联多表查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java-银行项目
- 下一篇: 职场沟通10个小技巧 让你迅速融入团队