以下介紹mysql內連線和外連線的區別:
--表tab1
id name
1, Jack
2, Tom
3, Kity
--表tab2
id grade
1, 56
2, 76
11, 89
內連線:進行連線的兩個表對應的相匹配的欄位完全相同的連線。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 inner join tab2 t2 on t1.id=t2.id
結果:
id name t2id grade
1 Jack 1 56
2 Tom 2 76
外連線又分為左外連線和右外連線。
左連線即LEFT OUTER JOIN:
兩個表進行左連線時會返回左邊表中的所有的行和右邊表中與之相匹配的列值沒有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 left outer join tab2 t2 on t1.id=t2.id
3 Kity null null
右連線即RIGHT OUTER JOIN:
兩個表進行右連線時會返回右邊表中的所有的行和左邊表中與之相匹配的列值沒有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 right outer join tab2 t2 on t1.id=t2.id
null null 11 89
以上透過一個例子描述內連線和外連線的區別。
以下介紹mysql內連線和外連線的區別:
--表tab1
id name
1, Jack
2, Tom
3, Kity
--表tab2
id grade
1, 56
2, 76
11, 89
內連線:進行連線的兩個表對應的相匹配的欄位完全相同的連線。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 inner join tab2 t2 on t1.id=t2.id
結果:
id name t2id grade
1 Jack 1 56
2 Tom 2 76
外連線又分為左外連線和右外連線。
左連線即LEFT OUTER JOIN:
兩個表進行左連線時會返回左邊表中的所有的行和右邊表中與之相匹配的列值沒有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 left outer join tab2 t2 on t1.id=t2.id
結果:
id name t2id grade
1 Jack 1 56
2 Tom 2 76
3 Kity null null
右連線即RIGHT OUTER JOIN:
兩個表進行右連線時會返回右邊表中的所有的行和左邊表中與之相匹配的列值沒有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 right outer join tab2 t2 on t1.id=t2.id
結果:
id name t2id grade
1 Jack 1 56
2 Tom 2 76
null null 11 89
以上透過一個例子描述內連線和外連線的區別。