假設有兩張表,分別為表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 關鍵字可省略。三種連線的共同點 都返回符合連線條件和查詢條件 即內...