This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

UNION

Sintassi

SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]
[ORDER BY [colonna [, colonna ...]]]
[LIMIT {[scarto,] num_righe | num_righe OFFSET scarto}]

Spiegazione

UNION combina i risultati di più istruzioni SELECT in un solo insieme di risultati.

I nomi delle colonne della prima SELECT sono usati come nomi per tutto l'insieme dei risultati. Le colonne selezionate elencate nelle posizioni corrispondenti delle SELECT successive dovrebbero avere gli stessi tipi di dati. Per esempio, la prima colonna selezionata nella prima istruzione dovrebbe essere dello stesso tipo della prima colonna selezionata nelle altre istruzioni.

La parola chiave ALL fa sì che le righe duplicate siano preservate. La parola chiave DISTINCT fa sì che le righe duplicate vengano rimosse dall'insieme dei risultati. Questo è anche il comportamento di default.

Le clausole ORDER BY e LIMIT

Le singole select possono contenere le loro clausole ORDER BY e LIMIT. In questo caso, le singole query devono essere racchiuse tra parentesi. Tuttavia questo non influenza l'ordine delle righe della UNION complessiva, perciò possono essere utilizzate solo per limitare il numero di righe estratte da una SELECT.

La UNION può avere clausole ORDER BY e LIMIT globali, che hanno effetto sull'intero insieme dei risultati. Se le colonne restituite dalle istruzioni SELECT hanno degli alias (AS), la ORDER BY deve usare quegli alias, non i veri nomi delle colonne.

Esempi

Ecco come definire l'ordine globale della UNION e limitare le righe totali:

(SELECT e_name AS name, email FROM employees)
UNION
(SELECT c_name AS name, email FROM customers)
ORDER BY name LIMIT 10;
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.