English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operatore UNION MySQL

Questo tutorial introduce la sintassi e gli esempi dell'operatore UNION MySQL.

L'operatore UNION MySQL viene utilizzato per connettere i risultati di due o più espressioni SELECT e combinare i risultati in un unico set di risultati. Le espressioni SELECT multiple eliminano i dati duplicati.

Sintassi

Formato della sintassi dell'operatore UNION MySQL:

SELECT espressione1, espressione2, ... espressione_n
FROM tabelle
[WHERE condizioni]
UNION [ALL | DISTINCT]
SELECT espressione1, espressione2, ... espressione_n
FROM tabelle
[WHERE condizioni];

Parametri

  • espressione1, espressione2, ... espressione_n: Colonne da cercare.

  • Tabelle: Tabella di dati da cercare.

  • Condizioni WHERE: Opzionale, condizione di ricerca.

  • DISTINCT: Opzionale, rimuovere i dati duplicati dal set di risultati. Per impostazione predefinita, l'operatore UNION ha già eliminato i dati duplicati, quindi il modificatore DISTINCT non ha alcun impatto sui risultati.

  • ALL: Opzionale, restituire tutti i set di risultati, inclusi i dati duplicati.

Database di esempio

In questo tutorial, utilizzeremo il database di esempio w3codebox.

Di seguito è riportato un esempio di dati dalla tabella "Websites":

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://it.oldtoolbag.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

Di seguito sono riportati i dati dell'APP "apps":

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 righe nel set (0.00 secondi)

Esempio di UNION SQL

La seguente query SQL seleziona tutti i record dalle tabelle "Websites" e "apps"Diversicountry (ci sono solo valori diversi):

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

Esegui il seguente SQL e i risultati di output sono i seguenti:

Nota:UNION non può essere utilizzato per elencare tutti i valori country di due tabelle. Se alcuni siti web e APP provengono dallo stesso paese, ogni paese verrà elencato una volta. UNION selezionerà solo valori diversi. Utilizzare UNION ALL per selezionare valori duplicati!

Esempio di UNION ALL SQL

La seguente istruzione SQL utilizza UNION ALL per selezionare da "Websites" e "apps" tabelleTutticountry (ci sono anche valori duplicati):

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

Esegui il seguente SQL e i risultati di output sono i seguenti:

UNION ALL con WHERE

La seguente istruzione SQL utilizza UNION ALL per selezionare da "Websites" e "apps" tabelleTuttiDati della Cina (CN) (ci sono anche valori duplicati):

Esempio online

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

Esegui il seguente SQL e i risultati di output sono i seguenti: