Łą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 :)