Sujungimo tvarka pagal užklausos sintaksę / teiginių naudojimą MySQL duomenų bazėje

MySQL duomenų bazės UNION ORDER BY užklausos sintaksės/sakinio naudojimas

MySQL UNION operatorius

Šioje pamokoje pristatoma MySQL UNION operatoriaus sintaksė ir pavyzdžiai.

apibūdinimas

MySQL UNION operatorius naudojamas dviejų ar daugiau SELECT teiginių rezultatams sujungti į rezultatų rinkinį. Keli SELECT teiginiai pašalins pasikartojančius duomenis.

gramatika

MySQL UNION operatoriaus sintaksės formatas:

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

参数

  • išraiška1, išraiška2, … išraiška_n: stulpelis, kurį reikia gauti.
  • lentelės: Duomenų lentelė, kurią reikia gauti.
  • KUR sąlygos: Neprivaloma, paieškos kriterijai.
  • ATSKIRTI: Pasirinktinai pašalinkite pasikartojančius duomenis iš rezultatų rinkinio. Pagal numatytuosius nustatymus UNION operatorius jau pašalino pasikartojančius duomenis, todėl modifikatorius DISTINCT neturi įtakos rezultatams.
  • VISOS: Pasirenkama, pateikia visus rezultatų rinkinius, kuriuose yra pasikartojančių duomenų.

Demo duomenų bazė

Šioje pamokoje naudosime chenweiliang duomenų bazę.

Toliau pateikiami duomenys, pasirinkti iš lentelės „Svetainės“:

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     |
+----+---------------+---------------------------+-------+---------+

Štai „apps“ APP duomenys:

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)

 


SQL UNION egzempliorius

Šis SQL sakinys pasirenka visas skirtingas šalis (tik skirtingas reikšmes) iš lentelių „Svetainės“ ir „Programėlės“ :

pavyzdys

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
 
注释:SĄJUNGOS negalima naudoti norint išvardyti visas šalis dviejose lentelėse. Jei kai kurios svetainės ir programos yra iš tos pačios šalies, kiekviena šalis bus pateikta tik vieną kartą. UNION pasirinks tik skirtingas vertes. Norėdami pasirinkti pasikartojančias vertes, naudokite UNION ALL!

SQL UNION ALL egzempliorius

Šiame SQL sakinyje naudojama UNION ALL funkcija, kad būtų pasirinktos visos šalys (įskaitant pasikartojančias reikšmes) iš lentelių „Svetainės“ ir „Programos“ :

pavyzdys

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

 


SQL UNION ALL with WHERE

Šiame SQL sakinyje naudojama UNION ALL funkcija, kad būtų pasirinkti visi Kinijos (CN) duomenys iš lentelių „Svetainės“ ir „Programos“ (įskaitant pasikartojančias reikšmes):

pavyzdys

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

发表 评论

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

Pereikite į viršų