Poradie spojenia podľa použitia syntaxe/príkazu dotazu v databáze MySQL

Použitie syntaxe/príkazu dotazu UNION ORDER BY v databáze MySQL

MySQL operátor UNION

Tento tutoriál vám predstaví syntax a príklady operátora MySQL UNION.

popis

Operátor MySQL UNION sa používa na spojenie výsledkov dvoch alebo viacerých príkazov SELECT do jednej sady výsledkov.Viaceré príkazy SELECT odstraňujú duplicitné údaje.

gramatika

Formát syntaxe operátora MySQL UNION:

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

参数

  • výraz1, výraz2, ... výraz_n: Stĺpec na načítanie.
  • tabuľky: Tabuľka údajov na načítanie.
  • KDE podmienky: Voliteľné, kritériá vyhľadávania.
  • ODLIŠNÝ: Voliteľne odstráňte duplicitné údaje zo sady výsledkov.Operátor UNION štandardne deduplikoval údaje, takže modifikátor DISTINCT nemá na výsledok žiadny vplyv.
  • ALL: Voliteľné, vráti všetky sady výsledkov vrátane duplikátov.

demo databáza

V tomto návode použijeme vzorovú databázu chenweiliang.

Tu sú údaje z tabuľky „Webové stránky“:

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

Tu sú údaje pre APP:

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)

 


Inštancia SQL UNION

Nasledujúci príkaz SQL vyberie všetky odlišné krajiny (iba odlišné hodnoty) z tabuliek „Webové stránky“ a „aplikácie“ :

Inštancia

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
 
注释:UNION nie je možné použiť na uvedenie všetkých krajín v oboch tabuľkách.Ak sú niektoré webové stránky a aplikácie z rovnakej krajiny, každá krajina bude uvedená iba raz. UNION len vyberá odlišné hodnoty.Na výber duplicitných hodnôt použite funkciu UNION ALL!

Inštancia SQL UNION ALL

Nasledujúci príkaz SQL používa UNION ALL na výber všetkých krajín (vrátane duplicitných hodnôt) z tabuliek „Webové stránky“ a „aplikácie“ :

Inštancia

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

 


SQL UNION VŠETKO s WHERE

Nasledujúci príkaz SQL používa UNION ALL na výber všetkých údajov pre Čínu (CN) z tabuliek „Websites“ a „apps“ (vrátane duplicitných hodnôt):

Inštancia

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

发表 评论

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

Prejdite na začiatok