SQL - Except, Union i Intersect

SQL - Except, Union i Intersect
HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 3
0

Jest to mój pierwszy post na forum, bo pierwszy raz potrzebuję tutaj pomocy. Odpowiedzi na większość problemów znajdowałem do tej pory w sieci, ale tego nie potrafię: mógłby ktoś mi wyjaśnić jeżeli mając zadanie: wyświetlić państwa gdzie są biura lub jakieś ambasady, to jak ma wyglądać polecenie i której z poniższych funkcji należy użyć? Domyślam się, że będzie to UNION, ale nie jestem pewny, a zapytanie będzie w stylu biura is not null, ambasady is not null.

EXCEPT - różnice
UNION - suma bez powtórzeń
INTERSECT - zwraca wiersze które zostały pobrane (przekrój)

Np. mając zadanie: "Wymień panstwa w których płyną rzeki a nie mają dostępu do morza" napisałem takie zapytanie:

Kopiuj
SELECT country FROM countries WHERE rzeki IS NOT NUL
EXCEPT
SELECT country FROM countries WHERE morze IS NULL
Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

Ani UNION, ani EXCEPT, ani INTERSECT (te dwa bodajże nie działają na MySQL). Zwykły OR (AND) wystarczy.

Kopiuj
SELECT * FROM countries WHERE (rzeki IS NOT NULL) AND (morze IS NULL)

OR byłby dla ambasad i biur.

Kopiuj
SELECT * FROM countries WHERE (ambasady IS NOT NULL) OR (biura IS NOT NULL)
HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 3
0

Może i masz racje, ale facet który dał to zadanie ostatnio na kolokwium kazał właśnie użyć jednego z tych trzech słów. Ktoś zrobił z rzekami na EXCEPT i miał dobrze.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.