1. 程式人生 > 其它 >聯合查詢排序_24.MySQL中的聯合查詢(UNION)

聯合查詢排序_24.MySQL中的聯合查詢(UNION)

技術標籤:聯合查詢排序

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);
4a2ce3b0b66332a375aefffabf990159.png c77ffba5aad081118e0206dfb5d789e5.png

3.案例

-- 自動去掉完全重複的資料SELECT * FROM student1UNIONSELECT * FROM student2;
7517070da70b73437d826a47e16e0b7e.png
-- 合併所有的資料SELECT * FROM student1UNION ALLSELECT * FROM student2;
a3561bbc935b8ab99b145ee695def041.png
-- 合併部分資料SELECT * FROM student1 WHERE sid=1UNION ALLSELECT * FROM student2;
7729eb0301ddd300be9f8e8b4a30561e.png
-- 排序SELECT * FROM student1UNION ALLSELECT * FROM student2ORDER BY sid DESC;
88dd60711d3d61acbefbbbe89057d8e2.png