SQL的幾種連線

2022-08-24 14:03:13 字數 1112 閱讀 2584

1.  內連線

結果: 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配; 匹配必須是某個條件是左表中與右表中相同,才會保留結果,否則不保留;

1.等值連線:在連線條件中使用等於號(=)運算子比較被連線列的列值,其查詢結果中列出被連線表中的所有列,包括其中的重複列。

2.不等值連線:在連線條件使用除等於運算子以外的其它比較運算子比較被連線的列的列值。

基本語法:左表 [inner] join 右表 on 左表.欄位 = 右表.欄位,如下:

select

*from book as a,stu as b where a.sutid = b.stuid

2.  外連線

結果:以某張表為主,取出裡面的所有記錄, 然後每條與另外一張表進行連線, 不管能不能匹配上條件,最終都會保留, 能匹配,正確保留; 不能匹配其他表的字段都置空null

1.左聯接:是以左表為基準,將a.stuid = b.stuid的資料進行連線,然後將左表沒有的對應項顯示,右表的列為null

2.右連線:是以右表為基準,將a.stuid = b.stuid的資料進行連線,然以將右表沒有的對應項顯示,左表的列為null

基本語法:左表 left/right join 右表 on 左表.欄位 = 右表.欄位;------條件必須有,如下:

select

*from book as a right

join stu as b on a.sutid =

b.stuid (右連線)

select

*from book as a left

join stu as b on a.sutid = b.stuid (左連線)

3.  交叉連線

結果:交叉聯接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉聯接也稱作笛卡爾積。

select

*from book as a cross

join stu as b order

by a.id

4.  自然連線

結果:在連線條件中使用等於(=)運算子比較被連線列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連線表中的重複列。

sql的幾種連線

最近找工作複習mysql,涉及到sql的幾種join a表id name 1zhang2li 3wang 4zhao b表id name 2zhao 4qian5wu 7zhang 1.inner join 是一種內連線,也是一種普通的連線,只是將a和b中所指定屬性中的相同的元素選擇出來 其中又分為...

SQL中的幾種連線

1 內連線inner join select a.name,b.name from table1 a inner join table2 b on a.id b.id 返回table1和table2表的交集部分 2 左連線left join select from table1 a left joi...

SQL表連線的幾種方式

一 關係代數 合併資料集合的理論基礎是關係代數,它是由e.f.codd於1970年提出的。在關係代數的形式化語言中,用表 或者資料集合表示關係或者實體,用行表示元組,用列表示屬性。關係代數包含以下8個關係運算子 1.選取 返回滿足指定條件的行。2.投影 從資料集合中返回指定的列。3.笛卡爾積 是關係...