1. 程式人生 > >資料庫mysql的union和join語句的例子

資料庫mysql的union和join語句的例子

MySQL中的連線有內連線,外連線,以及交叉連線(笛卡爾積)

1.cross join(交叉連線):指如果不帶WHERE條件子句,將會返回被連線的兩個表的笛卡爾積,返回結果的行數等於兩個錶行數的乘積

2.inner join(內連線):通常有2中情況:

a、等值連線(=號應用於連線條件,不會去除重複的列)
例如:select * from table1 as a inner join table2 as b on a.column=b.column
b、不等連線(>,>=,<=,!=,<>)

例如:select * from table1 as a inner join table2 as b on a.column<>b.column

3.outer join(外連線)

a、左外連線LEFT [OUTER] JOIN--顯示符合條件的資料行,同時顯示左邊資料表不符合條件的資料行,右邊沒有對應的條目顯示
NULL
例如:select * from table1 as a left [outer] join table2 as b on a.column=b.column
b、右連線RIGHT [OUTER] JOIN--顯示符合條件的資料行,同時顯示右邊資料表不符合條件的資料行,左邊沒有對應的條目顯示null
例如:select * from table1 as a right [outer] join table2 as b on a.column=b.column

c、全外連線--顯示符合條件的資料行,同時顯示左右不符合條件的資料行,無對應的左右兩邊顯示null

join與union不一樣,union這個運算只是將資料列合併,而join是將欄位合併。

union       對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序;
union all  對兩個結果集進行並集操作, 包括重複行,  不進行排序;
intersect  對兩個結果集進行交集操作,不包括重複行,同時進行預設規則的排序;
minus      對兩個結果集進行差操作,   不包括重複行,同時進行預設規則的排序。

例如:select Column1,Column2 from table 1 union select Column1,Column2 from table 2