1. 程式人生 > >Sql語法之join表連線說明

Sql語法之join表連線說明

                                                                       Sql語法之join表連線說明

//左連線、右連線、內連線我們可以看成是在全連線的基礎上過濾條件,這樣比較容易理解

  • 全連線Join

       語法:

              select * from A join B

       查詢結果:

              A表資料條數*B表資料條數 =查詢總條數

  • 內連線:Inner join

       語法:

select * from A inner join B on A.id=B.id

簡化寫法:

       select * from A ,B where A.id=B.id

on後面的條件:

      即可以是A表的過濾條件,也可以是B表的過濾條件,也可以是A表B表的關聯條件

查詢結果:

      如果A有10條資料,B有10條資料,name全連線有10*10=100條資料,這100條資料中滿足on後面條件的有8條,那麼查詢結果就有8條資料

  • 左連線Left join

       語法:

              select * from A left outer join B on A.id=B.id

on後面條件:

      只能是A表和B表的關聯關係或者是B表的過濾條件。

      如果在on後面寫了A表的過濾條件,無效(相當於沒寫)

查詢結果:

      如果A有10條資料,B有10條資料,那麼全連線有10*10=100條資料,在這100條資料中,滿足條件的有8條資料,而且這8條資料中只包含5條A表的資料,也就是說A表中另外5條資料沒有出現,現在left join 以左表為基準,即使沒有滿足條件的值也需要查出來,所以結果是8+5=13條資料

沒有滿足條件的這5條資料關於B表的欄位都是null

  • 右連線:Right join

       同理左連線