sql多表連線查詢

2021-09-23 10:45:48 字數 1613 閱讀 8266

返回兩個表的笛卡爾積:select * from a,b

比如a的id有,b的aid有,得到的資料:

id .....aid.....

1         2

1         3

1         4

2         2

....      ....

3         3

3         4

就是加了條件的交叉連線:select * from a,b where a.id = b.aid

比如a的id有,b的aid有,得到的資料:

id........a表資料(不含id)........aid........b表資料(不含aid)

2               不為空                  2              不為空  

3               不為空                  3              不為空

返回兩個表的交集:

(1).select *from a inner join b on a.id = b.aid-----------得到的資料和隱式內連線一樣

(2).select *from a inner join b using (id)----------當b表中的外鍵名等於a表的主鍵名時使用,查詢結果只有乙個id欄位的值

比如a的id有,b的id有,得到的資料:

id........a表資料(不含id)........b表資料(不含aid)

2               不為空                      不為空  

3               不為空                      不為空

返回兩個表的並集

select *from a left outer join b on a.id = b.aid     

返回a和b的並集,比如a的id有,b的oid有,返回的是,id為1的記錄中b表資訊為空

id........a表資料(不含id)........aid........b表資料(不含aid)

1               不為空                  空                空

2               不為空                   2              不為空  

3               不為空                   3              不為空

select *from a right outer join b on a.id = b.aid   

返回a和b的並集,比如a的id有,b的oid有,返回的是,id為4的記錄中a表資訊為空

id........a表資料(不含id)........aid........b表資料(不含aid)

2               不為空                   2              不為空  

3               不為空                   3              不為空

空                 空                        4              不為空

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 本文主要列舉兩張和三張表來講述多表連線查詢。新...