Ordinea unirii în funcție de sintaxa de interogare/utilizarea declarației în baza de date MySQL

Sintaxa/utilizarea instrucțiunilor de interogare UNION ORDER BY pentru baza de date MySQL

MySQL operator UNION

Acest tutorial vă prezintă sintaxa și exemplele operatorului MySQL UNION.

Descriere

Operatorul MySQL UNION este folosit pentru a combina rezultatele a două sau mai multe instrucțiuni SELECT într-un singur set de rezultate.Instrucțiunile SELECT multiple elimină datele duplicate.

gramatică

Format de sintaxă a operatorului MySQL UNION:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

参数

  • expresie1, expresie2, ... expresie_n: Coloană de preluat.
  • Mese: Tabelul de date de preluat.
  • Conditii UNDE: Opțional, criterii de căutare.
  • DISTINCT: Opțional, eliminați datele duplicate din setul de rezultate.Operatorul UNION are date deduplicate în mod implicit, astfel încât modificatorul DISTINCT nu are niciun efect asupra rezultatului.
  • TOATE: Opțional, returnează toate seturile de rezultate, inclusiv duplicatele.

baza de date demo

În acest tutorial, vom folosi baza de date de mostre chenweiliang.

Iată datele din tabelul „Site-uri web”:

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 陈沩亮博客      | http://www.chenweiliang.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

Iată datele pentru aplicația „aplicații”:

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name   | url                     | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP     | http://im.qq.com/       | CN      |
|  2 | 微博 APP | http://weibo.com/       | CN      |
|  3 | 淘宝 APP | https://www.taobao.com/ | CN      |
+----+------------+-------------------------+---------+
3 rows in set (0.00 sec)

 


Instanță SQL UNION

Următoarea instrucțiune SQL selectează toate țările distincte (doar valorile distincte) din tabelele „Site-uri web” și „aplicații” :

Instanță

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
 
注释:UNION nu poate fi folosit pentru a enumera toate țările în ambele tabele.Dacă unele site-uri web și aplicații sunt din aceeași țară, fiecare țară va fi listată o singură dată. UNION alege doar valori distincte.Vă rugăm să utilizați UNION ALL pentru a selecta valori duplicate!

Instanța SQL UNION ALL

Următoarea instrucțiune SQL folosește UNION ALL pentru a selecta toate țările (inclusiv valorile duplicate) din tabelele „Site-uri web” și „aplicații” :

Instanță

SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

 


SQL UNION ALL cu WHERE

Următoarea instrucțiune SQL folosește UNION ALL pentru a selecta toate datele pentru China (CN) din tabelele „Site-uri web” și „aplicații” (inclusiv valorile duplicate):

Instanță

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Derulaţi în sus