Łączenie wyników zapytań w SQL
Pisząc zapytania SELECT czasami zachodzi potrzeba złączenia pobranych wyników. W SQL mamy do dyspozycji operatory takie jak: suma (UNION
), różnica (EXCEPT
) oraz cześć wspólną (INTERSECT
). Przyjrzyjmy się więc jak je używać…
Suma
Wyniki danego zapytania możemy „dodać” do siebie za pomocą operatora UNION
. Działa on na zasadzie dodawania zbiorów. Wyświetlane są więc wszystkie wiersze.
Przykład użycia:
SELECT kol1 FROM tab1 UNION SELECT kol1 FROM tab2;
Operator UNION
powoduje usunięcie z wyniku wszystkich powtórzonych wierszy, można to ominąć stosując w miejsce UNION
operator UNION ALL
:
SELECT kol1 FROM tab1 UNION ALL SELECT kol1 FROM tab2;
Powyższy operator możemy oczywiście użyć kilka razy. Dopuszczalny jest między innymi taki zapis:
SELECT kol1 FROM tab1 UNION SELECT kol1 FROM tab2; UNION SELECT kol1 FROM tab3 UNION SELECT kol1 FROM tab4;
Różnica
Operator EXCEPT
zwraca różnicę pobieranych danych. Działa on na zasadzie różnicy zbiorów czyli wyświetla tylko te wiersze które były w pierwszej tabeli, a nie były w drugiej.
SELECT kol1 FROM tab1 EXCEPT SELECT kol2 FROM tab2;
Część wspólna
Część wspólną możemy uzyskać za pomocą operatora INTERSECT
. Zwraca on wiersze które zostały zwrócone przez oba zapytania:
SELECT kol1 FROM tab1 INTERSECT SELECT kol2 FROM tab2;
Cześć,
bardzo doceniam twój wkład w szerzenie darmowych bibliotek wiedzy w internecie.
Artykuł na +, natomiast jakby były jeszcze przykłady, to już w ogóle byłoby świetnie.
Cześć Dawid,
W artykule jest trochę praktycznych przykładów zapytań SQL. Masz na myśli jakieś konkretne sytuacje/kwerendy?
PS: Dzięki za docenienie mojej pracy :)