Różnica między UNION a INTERSECT

W języku SQL, zarówno UNION, jak i INTERSECT są operatorami stosowanymi do łączenia wyników dwóch lub więcej zapytań SELECT. Jednak każdy z nich służy do osiągnięcia innego celu.

UNION: Operator UNION jest używany do złączenia wyników dwóch lub więcej zapytań SELECT w jeden zestaw wyników, eliminując duplikaty. W praktyce oznacza to, że zwraca wszystkie wiersze z obu zapytań, ale każdy wiersz pojawi się tylko raz, nawet jeśli wystąpił w obu zapytaniach. Zapytania, które są łączone za pomocą UNION, muszą spełniać warunek: muszą mieć tę samą liczbę kolumn i te kolumny muszą być tego samego typu danych.

Przykład użycia UNION:

				
					SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

				
			

INTERSECT: Operator INTERSECT służy do zwrócenia tylko tych wierszy, które są wspólne dla obu zapytań SELECT. Innymi słowy, zwraca przecięcie wyników obu zapytań, czyli wiersze występujące w obu wynikach. Tak samo jak w przypadku UNION, zapytania łączone za pomocą INTERSECT muszą mieć tę samą liczbę kolumn i te kolumny muszą być tego samego typu danych.

Przykład użycia INTERSECT:

				
					SELECT column1, column2 FROM table1
INTERSECT
SELECT column1, column2 FROM table2;

				
			

Podsumowując, różnice między UNION a INTERSECT są następujące:

  • UNION zwraca wszystkie unikatowe wiersze z obu zapytań, łącząc je w jeden zestaw wyników.
  • INTERSECT zwraca tylko te wiersze, które są wspólne dla obu zapytań, czyli ich przecięcie.