Ostatni korytarz Labiryntu uczy łączenia zbiorów. Dotąd każde zapytanie zwracało jedną listę. Teraz weźmiemy dwa zapytania i skleimy ich wyniki w jedną listę za pomocą operatorów UNION i UNION ALL.
Operator UNION skleja wyniki dwóch zapytań w jedną listę. Oba zapytania muszą zwracać tę samą liczbę kolumn o zgodnych typach:
1SELECT tytul FROM ksiazki WHERE kategoria_id = 1
2UNION
3SELECT tytul FROM ksiazki WHERE kategoria_id = 2;UNION usuwa duplikaty - jeśli ten sam tytuł trafi się w obu zapytaniach, pojawi się tylko raz.UNION ALL działa tak samo, ale zachowuje wszystkie wiersze, łącznie z powtórzeniami:1SELECT tytul FROM ksiazki WHERE kategoria_id = 1
2UNION ALL
3SELECT tytul FROM ksiazki WHERE kategoria_id = 2;Jest szybszy, bo Biblioteka nie musi szukać i usuwać powtórek. Wybieraj go, gdy duplikaty Ci nie przeszkadzają.
UNION wcale nie wymaga, by oba zapytania pochodziły z tej samej tabeli. Wystarczy zgodna liczba i typy kolumn:
1SELECT imie FROM autorzy
2UNION
3SELECT imie FROM czytelnicy;Tak otrzymamy jedną listę imion - zarówno twórców, jak i czytelników Biblioteki.
@name