Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite UNION
operator do łączenia zestawów wyników dwóch lub więcej zapytań w jeden zestaw wyników.
Wprowadzenie do SQLite UNION
operator
Czasami trzeba połączyć dane z wielu tabel w kompletny zestaw wyników. Może to dotyczyć tabel z podobnymi danymi w tej samej bazie danych lub może trzeba połączyć podobne dane z wielu baz danych.
Aby połączyć wiersze z dwóch lub więcej zapytań w jeden zestaw wyników, użyj SQLite UNION
operator. Poniżej przedstawiono podstawową składnię UNION
operator:
query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;
Code language: SQL (Structured Query Language) (sql)
Oba UNION
i UNION ALL
operatory łączą wiersze z zestawów wyników w jeden zestaw wyników. UNION
operator usuwa zduplikowane wiersze, podczas gdy UNION ALL
operator nie.
Ponieważ UNION ALL
operator nie usuwa zduplikowanych wierszy, działa szybciej niż UNION
operatora.
Poniżej znajdują się reguły dotyczące danych związkowych:
- Liczba kolumn we wszystkich zapytaniach musi być taka sama.
- Odpowiednie kolumny muszą mieć zgodne typy danych.
- Nazwy kolumn pierwszego zapytania określają nazwy kolumn połączonego zestawu wyników.
GROUP BY
iHAVING
klauzule są stosowane do każdego indywidualnego zapytania, a nie do końcowego zestawu wyników.ORDER BY
klauzula jest stosowana do połączonego zestawu wyników, a nie do indywidualnego zestawu wyników.
Zauważ, że różnica między UNION
i JOIN
np. INNER JOIN
lub LEFT JOIN
jest to, że JOIN
klauzula łączy kolumny z wielu powiązanych tabel, podczas gdy UNION
łączy wiersze z wielu podobnych tabel.
Załóżmy, że mamy dwie tabele t1 i t2 o następujących strukturach:
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)
Poniższa instrukcja łączy zestawy wyników tabeli t1 i t2 za pomocą UNION
operator:
SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Oto wynik:
Poniższy rysunek ilustruje UNION
obsługa tablic t1 i t2:
Poniższa instrukcja łączy zestawy wyników tabeli t1 i t2 przy użyciu UNION ALL
operator:
SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)
Poniższy rysunek przedstawia dane wyjściowe:
Poniższy rysunek ilustruje UNION ALL
działanie zbiorów wyników tabel t1 i t2:
SQLite UNION
przykłady
Weźmy kilka przykładów użycia UNION
operatora.
1) SQLite UNION
przykład
Ta instrukcja używa UNION
operator do łączenia nazw pracowników i klientów w jedną listę:
SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;
Code language: SQL (Structured Query Language) (sql)
Oto wynik:
2) SQLite UNION
z ORDER BY
przykład
W tym przykładzie użyto UNION
operatora do łączenia nazw pracowników i klientów w jedną listę. Ponadto używa ORDER BY
klauzula sortująca listę nazwisk według imienia i nazwiska.
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)
Oto wynik:
W tym samouczku nauczyłeś się korzystać z SQLite UNION
operator do łączenia wierszy z zestawów wyników w jeden zestaw wyników. Poznałeś też różnice między UNION
i UNION ALL
operatorów.