V SQLite, UNION
operátor vytvoří složený SELECT
příkaz, který vrací výsledky levého a pravého SELECT
prohlášení. Jinými slovy, kombinuje výsledky ze dvou dotazů do jediné sady výsledků.
Příklad
Předpokládejme, že máme následující tabulky:
SELECT * FROM Teachers;
SELECT * FROM Students;
Výsledek:
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
Můžeme použít UNION
operátor vrátit všechny učitele a studenty:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
Výsledek:
TeacherName ----------- Ben Bill Cathy Ein Faye Jet Spike Warren
Ve výchozím nastavení UNION
operátor implicitně aplikuje DISTINCT
úkon. Jinými slovy, ve výchozím nastavení vrací pouze odlišné hodnoty. Výše uvedené výsledky tedy obsahují pouze jeden Warren, Cathy a Bill. A to i přesto, že kombinované stoly ve skutečnosti obsahují dva Warreny, dvě Cathy a tři Billy (jsou tam dva učitelé Cathy, učitel a zákazník jménem Warren a dva Bill a jeden student Bill).
Zahrnout duplikáty
Můžeme použít ALL
klíčové slovo pro zahrnutí duplicitních hodnot do výsledků:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
Výsledek:
TeacherName ----------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill
Tentokrát jsme dostali dvanáct řádků místo osmi, které jsme dostali v našem prvním příkladu.
Vidíme, že obě Cathy byly vráceny a všechny tři účty byly vráceny.