聯合查詢排序_24.MySQL中的聯合查詢(UNION)
阿新 • • 發佈:2021-02-07
技術標籤:聯合查詢排序
1.簡介
聯合查詢是多表查詢的一種方式,經常應用在分表操作中,在保證多個SELECT語句的查詢欄位數相同的情況下,合併多個查詢的結果。
語法
SELECT …UNION [ALL | DISTINCT] SELECT …[UNION [ALL | DISTINCT] SELECT …];
UNION是實現聯合查詢的關鍵字。
ALL表示儲存所有的查詢結果。
DISTINCT是預設值,可以省略,表示去除完全重複的記錄
2.準備
CREATE DATABASE mahaiwuji;USE mahaiwuji;CREATE TABLE student1 ( sid INT (4) PRIMARY KEY, sname VARCHAR (36), score INT ) ENGINE = INNODB DEFAULT CHARSET = utf8;INSERT INTO student1 VALUES (1,'a1',60);INSERT INTO student1 VALUES (2,'a2',65);INSERT INTO student1 VALUES (3,'a3',70);INSERT INTO student1 VALUES (4,'a4',75);INSERT INTO student1 VALUES (5,'a5',80);CREATE TABLE student2 ( sid INT (4) PRIMARY KEY, sname VARCHAR (36), score INT ) ENGINE = INNODB DEFAULT CHARSET = utf8;INSERT INTO student2 VALUES (5,'a5',80);INSERT INTO student2 VALUES (6,'a6',85);INSERT INTO student2 VALUES (7,'a7',90);INSERT INTO student2 VALUES (8,'a8',95);INSERT INTO student2 VALUES (9,'a9',100);
3.案例
-- 自動去掉完全重複的資料SELECT * FROM student1UNIONSELECT * FROM student2;
-- 合併所有的資料SELECT * FROM student1UNION ALLSELECT * FROM student2;
-- 合併部分資料SELECT * FROM student1 WHERE sid=1UNION ALLSELECT * FROM student2;
-- 排序SELECT * FROM student1UNION ALLSELECT * FROM student2ORDER BY sid DESC;