常用的多表連線查詢

2021-10-05 15:33:47 字數 829 閱讀 9038

內連線(inner join):返回的是兩個表中匹配連線條件的行的集合

1.等值內連線

2.非等值內連線

3.自然連線(natural join)

自然連線 :自動找相同字段相等的值作為連線條件,若沒有相同字段,則相當於做笛卡爾積運算,即dept表中的每一行都有test表中的每一行去匹配,返回 行數*行數 條記錄

1.左外連線(left join)

左外連線:左邊(dept表)不符合連線條件的資料也會查詢出來

2.右外連線(right join)

右外連線:右邊(test表)不符合連線條件的資料也會查詢出來

3.全連線(full join)

左邊(dept表)和右邊(test表)不符合連線條件的資料也會查詢出來

交叉連線就是笛卡爾積運算

即自身連線,也就是說把一張表看做兩張表,分別取不同的別名,做連線查詢

例項:假設在teacher表中(如下圖),有老師的姓名tname列,導師編號mgrno列,要求查詢每個老師的導師是誰:

可以把teacher表看做兩張表,分別取不同的別名,sql語句如下:

select t1.tname,t2.tname 導師

from teacher t1 inner join teacher t2 on t1.mgrno=t2.tno

結果如下:

這就是自身連線。

常用的多表連線查詢

多表連線查詢的分類 內連線 inner join 外連線左連線 left join 右連線 right join 內連線 inner join on mysql inner join子句將乙個表中的行與其他表中的行進行匹配,並允許從兩個表中查詢包含列的行記錄。inner join子句是select語...

多表查詢(連線查詢)

多表查詢 資料 是多個表,這時注意一定要書寫連線條件。當n個表連線,至少需要n 1個連線條件。注意 1 如何判斷兩個表之間有公共列?型別一致 寬度一致。列名不能作為判斷標準,列名不同也能是公共列 如 emp的empno和emp的mgr 2 如何避免二義性問題?給每個屬性加歸屬。3 注意使用表別名。表...

多表連線查詢

1 內連線 inner join 只返回兩個表中所有滿足連線條件的行 2 外連線outer join 除了返回兩個表中所有滿足連線條件的行之外,還返回 某個表中不滿足連線條件的行 3 交叉連線 產生笛卡爾積的連線 如果連線條件使用等號 就可以叫做相等連線 1 使用natural join關鍵字進行內...