SQL - Except, Union i Intersect

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:

SELECT country FROM countries WHERE rzeki IS NOT NUL
EXCEPT
SELECT country FROM countries WHERE morze IS NULL
0

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

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

OR byłby dla ambasad i biur.

SELECT * FROM countries WHERE (ambasady IS NOT NULL) OR (biura IS NOT NULL)
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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1