sql >> Databáze >  >> RDS >> SQLite

SQLite unie

Shrnutí :v tomto tutoriálu se naučíte používat SQLite UNION operátor pro spojení sad výsledků dvou nebo více dotazů do jediné sady výsledků.

Úvod do SQLite UNION operátor

Někdy je potřeba zkombinovat data z více tabulek do kompletní sady výsledků. Může to být pro tabulky s podobnými daty ve stejné databázi nebo možná potřebujete zkombinovat podobná data z více databází.

Chcete-li zkombinovat řádky ze dvou nebo více dotazů do jedné sady výsledků, použijte SQLite UNION operátor. Následující text ilustruje základní syntaxi UNION operátor:

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

Oba UNION a UNION ALL operátory spojují řádky ze sad výsledků do jediné sady výsledků. UNION operátor odstraní odstranění duplicitních řádků, zatímco UNION ALL operátor ne.

Protože UNION ALL operátor neodstraňuje duplicitní řádky, běží rychleji než UNION operátor.

Níže jsou uvedena pravidla pro sjednocení dat:

  • Počet sloupců ve všech dotazech musí být stejný.
  • Odpovídající sloupce musí mít kompatibilní datové typy.
  • Názvy sloupců prvního dotazu určují názvy sloupců kombinované sady výsledků.
  • GROUP BY a HAVING klauzule se aplikují na každý jednotlivý dotaz, nikoli na konečnou sadu výsledků.
  • Položka ORDER BY klauzule se použije na kombinovanou sadu výsledků, nikoli na jednotlivou sadu výsledků.

Všimněte si, že rozdíl mezi UNION a JOIN např. INNER JOIN nebo LEFT JOIN je to JOIN klauzule kombinuje sloupce z více souvisejících tabulek, zatímco UNION kombinuje řádky z více podobných tabulek.

Předpokládejme, že máme dvě tabulky t1 a t2 s následujícími strukturami:

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)

Následující příkaz kombinuje sady výsledků tabulky t1 a t2 pomocí UNION operátor:

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

Zde je výstup:

Následující obrázek ilustruje UNION provoz tabulek t1 a t2:

Následující příkaz kombinuje sady výsledků tabulky t1 a t2 pomocí UNION ALL operátor:

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

Následující obrázek ukazuje výstup:

Následující obrázek ilustruje UNION ALL provoz výsledkových sad tabulek t1 a t2:

SQLite UNION příklady

Podívejme se na několik příkladů použití UNION operátor.

1) SQLite UNION příklad

Tento příkaz používá UNION operátora sloučit jména zaměstnanců a zákazníků do jednoho seznamu:

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

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

Zde je výstup:

2) SQLite UNION pomocí ORDER BY příklad

Tento příklad používá UNION operátora spojit jména zaměstnanců a zákazníků do jednoho seznamu. Kromě toho používá ORDER BY klauzule k řazení seznamu jmen podle jména a příjmení.

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)

Zde je výstup:

V tomto tutoriálu jste se naučili používat SQLite UNION operátor pro spojení řádků ze sad výsledků do jediné sady výsledků. Také jste se dozvěděli rozdíly mezi UNION a UNION ALL operátory.


  1. Výkon sys.partitions

  2. Výjimka Java Oracle - maximální počet výrazů v seznamu je 1000

  3. Míchání explicitních a implicitních spojení se nezdaří s Existuje záznam pro tabulku ... ale nelze na něj odkazovat z této části dotazu

  4. Získejte název sloupce z jeho ID na serveru SQL:COL_NAME()