用兩個表(a_table、b_table),關聯欄位a_table.a_id和b_table.b_id來演示一下mysql的內連線、外連線( 左(外)連線、右(外)連線、全(外)連線)。
mysql版本:server version: 5.6.31 mysql community server (gpl)
資料庫表:a_table、b_table
主題:內連線、左連線(左外連線)、右連線(右外連線)、全連線(全外連線)
建表語句:
create table `a_table` (
`a_id` int(11) default null,
`a_name` varchar(10) default null,
`a_part` varchar(10) default null
) engine=innodb default charset=utf8
create table `b_table` (
`b_id` int(11) default null,
`b_name` varchar(10) default null,
`b_part` varchar(10) default null
) engine=innodb default charset=utf8
表測試資料:
關鍵字:inner join on
語句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
執行結果:
說明:組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集(陰影)部分。
關鍵字:left join on / left outer join on
語句:select * from a_table a left join b_table b on a.a_id = b.b_id;
執行結果:
說明:left join 是left outer join的簡寫,它的全稱是左外連線,是外連線中的一種。
左(外)連線,左表(a_table)的記錄將會全部表示出來,而右表(b_table)只會顯示符合搜尋條件的記錄。右表記錄不足的地方均為null。
關鍵字:right join on / right outer join on
語句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
執行結果:
說明:right join是right outer join的簡寫,它的全稱是右外連線,是外連線中的一種。
與左(外)連線相反,右(外)連線,左表(a_table)只會顯示符合搜尋條件的記錄,而右表(b_table)的記錄將會全部表示出來。左表記錄不足的地方均為null。
mysql目前不支援此種方式,可以用其他方式替代解決。
資料庫中的連線查詢
資料庫中的各個表中存放著不同的資料,使用者往往需要用多個表中的資料來組合 提煉出所需要的資訊。如果乙個查詢需要對多個表進行操作,就稱為 連線查詢。連線查詢的結果集或結果表,稱為表之間的連線連線。查詢實際上是通過各個表之間共同列的關聯性來查詢資料的,它是關聯式資料庫查詢最主要的特徵。連線查詢分為等值連...
MySQL資料庫的多表查詢連線方式
資料表如圖所示 外連線可分為 左連線 右連線 完全外連線。left join 或 left outer joinsql語句 左外連線包含left join左表所有行,如果左表中某行在右表沒有匹配,則結果中對應行右表的部分全部為空 right join 或 right outer join sql語句...
資料庫連線方式
1 內連線 inner join 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配 匹配必須是某條件在左表中與右表中相同最終才會保留結果,否則不保留。2 外連線out join 以某張表為主,取出裡面的所有記錄,然後每條與另外一張表進行連線 不管能不能匹配上條件,最終都會保留 能匹配,正確保留 ...