SQLite
 sql >> Database >  >> RDS >> SQLite

Unione SQLite

Riepilogo :in questo tutorial imparerai come usare SQLite UNION operatore per combinare set di risultati di due o più query in un unico set di risultati.

Introduzione a SQLite UNION operatore

A volte, è necessario combinare i dati di più tabelle in un set di risultati completo. Potrebbe essere per tabelle con dati simili all'interno dello stesso database o forse è necessario combinare dati simili da più database.

Per combinare righe di due o più query in un unico set di risultati, utilizza SQLite UNION operatore. Quanto segue illustra la sintassi di base di UNION operatore:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Entrambi UNION e UNION ALL gli operatori combinano le righe dei set di risultati in un unico set di risultati. Il UNION l'operatore rimuove elimina le righe duplicate, mentre UNION ALL l'operatore no.

Perché il UNION ALL l'operatore non rimuove le righe duplicate, funziona più velocemente di UNION operatore.

Di seguito sono riportate le regole per l'unione dei dati:

  • Il numero di colonne in tutte le query deve essere lo stesso.
  • Le colonne corrispondenti devono avere tipi di dati compatibili.
  • I nomi delle colonne della prima query determinano i nomi delle colonne del set di risultati combinato.
  • Il GROUP BY e HAVING le clausole vengono applicate a ogni singola query, non al set di risultati finale.
  • Il ORDER BY La clausola viene applicata al set di risultati combinato, non all'interno del set di risultati individuale.

Nota che la differenza tra UNION e JOIN ad esempio, INNER JOIN o LEFT JOIN è che il JOIN la clausola combina colonne da più tabelle correlate, mentre UNION combina righe da più tabelle simili.

Supponiamo di avere due tabelle t1 e t2 con le seguenti strutture:

CREATE TABLE t1(
    v1 INT
);
 
INSERT INTO t1(v1)
VALUES(1),(2),(3);
 
CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);Code language: SQL (Structured Query Language) (sql)

L'istruzione seguente combina i set di risultati della tabella t1 e t2 utilizzando UNION operatore:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Ecco l'output:

L'immagine seguente illustra il UNION funzionamento delle tabelle t1 e t2:

L'istruzione seguente combina i set di risultati della tabella t1 e t2 utilizzando UNION ALL operatore:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

L'immagine seguente mostra l'output:

L'immagine seguente illustra il UNION ALL funzionamento dei set di risultati delle tabelle t1 e t2:

SQLite UNION esempi

Prendiamo alcuni esempi di utilizzo di UNION operatore.

1) SQLite UNION esempio

Questa istruzione utilizza il UNION operatore per combinare i nomi di dipendenti e clienti in un unico elenco:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;

Code language: SQL (Structured Query Language) (sql)

Ecco l'output:

2) SQLite UNION con ORDER BY esempio

Questo esempio usa UNION operatore per combinare i nomi dei dipendenti e dei clienti in un unico elenco. Inoltre, utilizza il ORDER BY clausola per ordinare l'elenco dei nomi per nome e cognome.

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Ecco l'output:

In questo tutorial, hai imparato a usare SQLite UNION per combinare le righe dei set di risultati in un unico set di risultati. Hai anche imparato le differenze tra UNION e UNION ALL operatori.