天天看點

SQL連接配接方式(左連接配接、右連接配接、内連接配接、外連接配接)

現有Table_a、Table_b 兩張表,詳細如下表所示:

Table_a

id name
a1 張三
a2 李四
a3 王五

Table_b

id a_id no
b1 a1 1001
b2 a5 1002
b3 a6 1003
b4 a7 1004

1.左連接配接(left join):查詢結果為Table_a表中的所有列。

左連接配接:
 select a.name, b.no
    from Table_a a
    left join Table_b b on a.id = b.a_id
           

查詢結果:

name no
張三 1001
李四 null
王五 null

2.右連接配接(ringht join):查詢結果為Table_b表中的所有列。

右連接配接:
 select a.name, b.no
    from Table_a a
    right join Table_b b on a.id = b.a_id
           

查詢結果:

name no
張三 1001
null 1002
null 1003
null 1004

3.内連接配接(inner join):查詢結果為Table_a表,Table_b表中共有的列。

内連接配接:
 select a.name, b.no
    from Table_a a
    inner join Table_b b on a.id = b.a_id
           

查詢結果:

name no
張三 1001

4.外連接配接(outer join):查詢結果為Table_a表,Table_b表中所有的列。

外連接配接:
 select a.name, b.no
    from Table_a a
    outer join Table_b b on a.id = b.a_id
           

查詢結果:

name no
張三 1001
李四 null
王五 null
null 1002
null 1003
null 1004

在實際使用中再次遇到,看了一下以前寫的https://blog.csdn.net/weixin_39548940/article/details/76269552,想了一下下,然後寫了今天這篇,感覺文字與表相結合的表現方式,以後再回過來看,可能會更易了解了一點點。