聯合 連線查詢

2021-09-25 13:29:14 字數 1404 閱讀 6795

概念:將多個查詢的結果合併在一起,字段數不變,多個查詢的記錄數合併。

基本語法:select 語句 union [distinct/all] select 語句;

order by的使用

基本語法:(select 語句 order by 字段 [asc/desc] limit n,m) union [distinct/all] (select 語句 order by 字段 [asc/desc] limit n,m);

注意:聯合查詢中使用order by必須在select 語句前後加括號且必須有limit限制。

交叉連線(產生笛卡爾積)

基本語法:select */字段列表 from 表1 cross join 表2; 

內連線inner join,從一張表中取出所有的記錄去另外一張表中匹配,利用匹配條件進行匹配,成功則保留,失敗就放棄。

基本語法: select */字段列表 from 表1 inner join 表2 on 匹配條件;

注意:沒有匹配條件等於交叉查詢。 

外連線outer join,按照某一張表作為主表,拿主表每一條記錄去匹配另一張表的每一條記錄,匹配成功保留,失敗也保留(從表資料為null)。 

左外連線:left join,左表為主表

右外連線:right join,右表為主表

基本語法:

左連線:select */字段列表 from 主表 left join 從表 on 連線條件;

右連線:select */字段列表 from 從表 right join 主表 on 連線條件;

using 關鍵字

用於連線查詢中替換對應的on關鍵字,進行條件匹配

基本語法 :select */字段列表 from 從表 [inner/left/right] join 主表 using(同名字段列表);

連線查詢,子查詢,聯合查詢

交叉連線 實際上,交叉連線是將兩個表不設定任何條件的連線結果。交叉連線通常也被叫做 笛卡爾積 數學上可能比較多。語法 from 表1 cross join 表2 可見交叉連線只是沒有on條件而已。cross這個詞也可以省略,還可以使用inner這個詞代替 例子select from product ...

連線查詢,子查詢,聯合查詢

一,連線查詢 1.交叉連線查詢 這種查詢方式基本不會使用,原因就是這種查詢方式得到的是兩個表的乘積 笛卡兒集 語法就是select from a,b 2.內連線查詢,可以有效的去除笛卡爾集現象 內連線查詢分為兩類 隱式內連線 select from a,b where 條件隱式連線使用別名 sele...

子查詢 聯合查詢和連線查詢

查詢中巢狀查詢。如 select from select cname,cid from tblclass union select dname,did from department as t1 order by cname 將多個結果集合並成乙個結果集,前提是列數相同,並且相應的列的型別相同。判斷...