- 多表查詢
通過不同表中具有相同意義的關鍵字段,将多個表進行連接配接,查詢不同表中的字段資訊
- 連接配接方式
- 内連接配接和外連接配接(左連接配接和右連接配接)
- 多表連接配接的結果通過三個屬性決定
- 方向性:在外連接配接中寫在前邊的表為左表、寫在後邊的表為右表
- 主附關系:主表要出所有的資料範圍,附表與主表無比對項時标記為null,内連接配接時無主附表之分
- 對應關系:關鍵字段中有重複值的表為多表,沒有重複值的表為一表
連接配接用到的t1表和t2表, 結合圖便于了解連接配接關系

- 内連接配接
按照連接配接條件合并兩個表,傳回滿足條件的行。
select 字段1[,…] from 表1[ inner] join 表2 on 表1.key=表2.key;
-- 内連接配接
select * from t1 inner join t2 on t1.key1 = t2.key2;
select * from t1 join t2 on t1.key1 = t2.key2; # 内連接配接inner可省略
- 左連接配接
結果中除了包括滿足連接配接條件的行外,還包括左表的所有行。
select 字段1[,…] from 表1 left join 表2 on 表1.key=表2.key;
-- 左連接配接
select * from t1 left join t2 on t1.key1 = t2.key2; # t1主表,t2附表
- 右連接配接
結果中除了包括滿足連接配接條件的行外,還包括右表的所有行。
select 字段1[,…] from 表1 right join 表2 on 表1.key=表2.key;
-- 右連接配接
select * from t1 right join t2 on t1.key1 = t2.key2; # t1附表,t2主表
- 聯合查詢
把多條select語句的查詢結果合并為一個結果集。
被合并的結果集的列數、順序和資料類型必須完全一緻
union去重:select 字段1[,字段2,…] from 表名 union select 字段1[,字段2,…] from 表名;
union all不去重: select 字段1[,字段2,…] from 表名 union all select 字段1[,字段2,…] from 表名;
-- 合并查詢
-- union去重
select * from t1
union
select * from t2;
-- union all不去重
select * from t1
union all
select * from t2;