W SQLite, UNION
operator tworzy złożony SELECT
instrukcja zwracająca wyniki lewego i prawego SELECT
sprawozdania. Innymi słowy, łączy wyniki z dwóch zapytań w jeden zestaw wyników.
Przykład
Załóżmy, że mamy następujące tabele:
SELECT * FROM Teachers;
SELECT * FROM Students;
Wynik:
TeacherId TeacherName --------- ----------- 1 Warren 2 Ben 3 Cathy 4 Cathy 5 Bill 6 Bill StudentId StudentName --------- ----------- 1 Faye 2 Jet 3 Spike 4 Ein 5 Warren 6 Bill
Możemy użyć UNION
operator, aby zwrócić wszystkich nauczycieli i uczniów:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
Wynik:
TeacherName ----------- Ben Bill Cathy Ein Faye Jet Spike Warren
Domyślnie UNION
operator domyślnie stosuje DISTINCT
operacja. Innymi słowy, domyślnie zwraca tylko różne wartości. Tak więc powyższe wyniki zawierają tylko po jednym z Warrena, Cathy i Billa. Dzieje się tak pomimo faktu, że połączone tabele faktycznie zawierają dwa Warrens, dwie Cathys i trzech Billów (jest dwóch nauczycieli o imieniu Cathy, nauczyciel i klient o imieniu Warren i dwóch o imieniu Bill, a także jeden uczeń o imieniu Bill).
Dołącz duplikaty
Możemy użyć ALL
słowo kluczowe, aby uwzględnić zduplikowane wartości w wynikach:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
Wynik:
TeacherName ----------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill
Tym razem otrzymaliśmy dwanaście wierszy zamiast ośmiu, które otrzymaliśmy w naszym pierwszym przykładzie.
Widzimy, że obie Cathys zostały zwrócone i wszystkie trzy rachunki zostały zwrócone.