資料庫mysql的union和join語句的例子
阿新 • • 發佈:2019-02-05
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 對兩個結果集進行差操作, 不包括重複行,同時進行預設規則的排序。