關於SQL中Union和Join的用法

2021-08-21 03:03:23 字數 2302 閱讀 9404

//聯合兩個表,沒有重複

select e_name from employees_china

union

select e_name from employees_usa

//聯合兩個表,允許重複

select e_name from employees_china

union

allselect e_name from employees_usa

//使用連表查詢

select persons.lastname, persons.firstname, orders.orderno

from persons, orders

where persons.id_p = orders.id_p

//使用join查詢

select persons.lastname, persons.firstname, orders.orderno

from persons

inner

join orders

on persons.id_p = orders.id_p

order

by persons.lastname

left join: 即使右表中沒有匹配,也從左表返回所有的行

right join: 即使左表中沒有匹配,也從右表返回所有的行

full join: 只要其中乙個表中存在匹配,就返回行

//使用left join查詢,只要左表有匹配的條件,就會生成一行,右表的列值為空。

select persons.lastname, persons.firstname, orders.orderno

from persons

left

join orders

on persons.id_p=orders.id_p

order

by persons.lastname

//使用right join查詢,只要右表有匹配的條件,就會生成一行,左表的列值為空。

select persons.lastname, persons.firstname, orders.orderno

from persons

right

join orders

on persons.id_p=orders.id_p

order

by persons.lastname

//使用full join查詢,只要其中乙個表中存在匹配,就會生成一行,另乙個表的列值為空。

select persons.lastname, persons.firstname, orders.orderno

from persons

full

join orders

on persons.id_p=orders.id_p

order

by persons.lastname

在兩個表的乙個完整join語句出現的任何乙個地方,我們都可以只用乙個表名來代替它。所謂「兩個表的乙個完整join語句」也即「join子句」,就是指如「a join b on a.a= b.b」這樣乙個完整的句子。

//a: 可以這樣:

select * from a inner

join(((

b inner

join c on b.b = c.c)

inner

join d on b.b = d.d)

inner

join e on d.d = e.e)

on a.a = e.e

//b: 也可以這樣:

select * from (((

a inner

join b on a.a = b.b)

inner

join c on c.c = a.a)

inner

join d on d.d = c.c)

inner

join e

on e.e = d.d

//c: 也可以這樣:

select * from

a inner

join b on a.a = b.b

inner

join c on c.c = a.a

inner

join d on d.d = c.c

inner

join e on e.e = d.d

sql中union和union all用法

如果我們需要將兩個select語句的結果作為乙個整體顯示出來,我們就需要用到union或者union all關鍵字。union 或稱為聯合 的作用是將多個結果合併在一起顯示出來。union和union all的區別是,union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全...

SQL中Union和Union All的用法

union 操作符 union 操作符用於合併兩個或多個 select 語句的結果集,請注意,union 內部的 select 語句必須擁有 相同數量的列,列也必須擁有 相似的資料型別,同時,每條 select 語句中的列的 順序必須相同。union跟 join 有些許類似,因為這兩個指令都可以由多...

SQL中UNION和UNION ALL的詳細用法

在開發中,有些資料的儲存可能涉及到分庫分表,查詢的時候,可能需要查詢所有的分表,這個時候,就需要用到union或者union all,下面介紹一下union的用法以及與union all的區別 union操作符用於合併兩個或多個select語句的結果集,這裡需要注意的是 union內部的select...