推薦( 免費):SQL教學
大家在初學資料庫時,對DQL中的連接查詢是否有些疑惑,不知道什麼時候什麼場景下該用那種連接查詢?
不要著急,接下來由我來給大家介紹一下,本人對內連接、左外連接、右外連接的特點和應用場景的理解,供大家參考。 以下的程式碼示範皆基於name表和country表展開。
id | |
---|---|
1 | |
2 | |
3 | |
4 | |
5 |
country表格 | ||
country | A_ID | |
1 | 春秋時期越國人 | #1 |
##2 | 唐代蒲州永樂人 | 2 |
3 | 東漢末年山西忻州人 | 3 |
西漢時期南郡秭歸人
4
#5##《戰國時期
# 6 | 註: | 1)b表A_ID與a表a_id 存在關係2)連接查詢是要使用關聯條件去除不匹配資料否則會出現笛卡爾積 | ||
1) 內連接 |
语法: select 要查询的字段 from 表名1 inner join 表名2 on 表1.字段 = 表2.字段; inner join 可简写为 逗号, 内连接特点: 只会保留完全符合on后条件的数据 应用场景: 如果两张表有外键关系可以使用内链接,因为通过内链接每一条只能返回单条记录 select * from name n inner join country c on n.id = c.N_ID; |
id | name | |
country | N_ID | #1 | ||
' | 1||||
---|---|---|---|---|
#2 | 楊玉環 | 2 | 唐代蒲州永樂人 | |
#3 | 貂蟬 | #3 | 東漢末年山西忻州人 | |
4 | 王昭君 | 4 | 西漢時期南郡秭歸人 | |
2)左外連接 | ||||
name | id | country | N_ID |
1 西施
1 | 2 | 楊玉環 | 2 | |
---|---|---|---|---|
#3 | 貂蟬 | 3 | 東漢末年山西忻州人 | |
#4 | 王昭君 | 4 | #西漢時期南郡秭歸人 | |
#5 | 趙飛燕 | null | #null | |
3) 右外連接 | ||||
name | id | country | N_ID |
1西施
1 | 2 | 楊玉環 | 2 | |
---|---|---|---|---|
#3 | 貂蟬 | 3 | 東漢末年山西忻州人 | |
#4 | 王昭君 | 4 | #西漢時期南郡秭歸人 | |
null | null | 5 | 戰國時期 | |
4) 完全連結 | # | |||
name | id | country | N_ID | |
1 | 西施 | 1 | 春秋時期越國人 | 1 |
#2楊玉環
2
唐代蒲州永樂人
以上是瞭解sql語句的內連接、左外連接、右外連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!