mysql 外鏈結 自連線

2021-08-29 03:04:36 字數 1346 閱讀 4803

假設有兩張表,分別為表a和表b,

a:id    name  nick_name

1     張三      張三

2     李四       李

3      王五      王五

b:id   age   a_id

1     23     1

2     56      3

3     18      4

內連線:至少乙個表中匹配即可,相當於取a和b的交集

select a.name,b.age from a inner join b on a.id = b.a_id;
結果:

name  age

張三    23

王五    56

左外連線:返回左表裡所有的行,即使右表裡沒有匹配

select a.name,b.age from a left join b on a.id = b.a_id;
name  age

張三    23

李四    null

王五    56

右外連線:返回右表裡所有的行,即使左表裡沒有匹配

select a.name,b.age from a right join b on a.id = b.a_id;
name  age

張三    23

null     56

王五    56

全外連線:只要乙個表裡有即可,相當於取a,b的並集

select * from a full join b;
id   name  id   age  a_id

1    張三    1    23    1

2    李四    1    23    1

3    王五    1    23    1

1    張三    2    56    3

2    李四    2    56    3

3    王五    2    56    3

1    張三    3    18    5

2    李四    3    18    5

3    王五    3    18    5

自連線:對a表進行自連線,即把乙個表當做兩個表來用

select a1.name,a1.nick_name from a a1 inner join a a2 on a1.name = a2.nick_name;
name  nick_name

張三     張三

王五      王五

內連線 外連線 自連線 交叉鏈結

資料表的連線有 1 內連線 自然連線 只有兩個表相匹配的行才能在結果集中出現 2 外連線 包括 1 左外連線 左邊的表不加限制 2 右外連線 右邊的表不加限制 3 全外連線 左右兩表都不加限制 3 自連線 連線發生在一張基表內 內連線 一 內連線 內連線查詢操作列出與連線條件匹配的資料行,它使用比較...

MySQL左外鏈結與右外連線

外鏈結查詢 即要查詢有關聯關係的資料,還要查詢沒有關聯關係的資料。個人理解為 表a和表b兩個關聯的列中 如下圖 emmm,簡單的來說兩個表的關聯關係 book.bid bookshop.id,他們兩個表的關聯的兩個列中可能book.bid的列中有值,而bookshop.id中為空值,這個時候就 需要...

mysql外連線 MySQL外連線

外連線不但返回符合連線和查詢條件的資料行,還返回不符合條件的一些行。外連線分三類 左外連線 left outer join 右外連線 right outer join 和全外連線 full outer join 在外連線中outer 關鍵字可省略。三種連線的共同點 都返回符合連線條件和查詢條件 即內...