SQL pochodzi z relational algebra.
Jednym ze sposobów odróżnienia jest to, że DOŁĄCZY są operacjami na zestawach, które mogą wytworzyć więcej rekordów lub mniej rekordów w wyniku niż w oryginalnych tabelach. Z drugiej strony WHERE zawsze ogranicza liczbę wyników.
Dalsza część tekstu to dodatkowe wyjaśnienie.
Aby uzyskać więcej informacji na temat typów łączenia zobacz ponownie article.
Kiedy powiedziałem, że warunek "where" zawsze ogranicza wyniki, musisz wziąć pod uwagę, że kiedy mówimy o zapytaniach na dwóch (lub więcej) tabelach, musisz w jakiś sposób powiązać rekordy z tych tabel, nawet jeśli istnieje brak słowa kluczowego JOIN.
Tak więc w SQL, jeśli tabele są po prostu oddzielone przecinkiem, w rzeczywistości używasz CROSS JOIN (produkt kartezjański), który zwraca każdy wiersz z jednej tabeli dla każdego wiersza w drugim.
A ponieważ jest to maksymalna liczba kombinacji wierszy z dwóch tabel, wyniki dowolnego WHERE na tabelach połączonych krzyżowo mogą być wyrażone jako operacja JOIN.
Ale wstrzymaj się, są wyjątki od tego maksimum, gdy wprowadzisz sprzężenia LEFT, RIGHT i FULL OUTER.
LEFT JOIN dołącza rekordy z lewej tabeli do danego kryterium z rekordami z prawej tabeli, ALE jeśli kryteria łączenia, patrząc na wiersz z lewej tabeli nie jest spełniony dla jakichkolwiek rekordów w prawej tabeli LEWEJ JOIN nadal będzie zwracał rekord z lewej tabeli, a w kolumnach, które pochodzą z właściwej tabeli, zwróci wartości NULL (RIGHT JOIN działa podobnie, ale z drugiej strony FULL OUTER działa tak samo w tym samym czasie).
Ponieważ domyślne połączenie krzyżowe NIE zwraca tych rekordów, nie można wyrazić tych kryteriów sprzężenia za pomocą warunku WHERE i konieczne jest użycie składni JOIN (wyrostek był wyjątkiem od tego z rozszerzeniem do standardu SQL i to = operator, ale nie zostało to zaakceptowane przez innych sprzedawców ani standard).
Łączenia zwykle, ale nie zawsze, są zbieżne z istniejącą więzią referencyjną i sugerują relacje między podmiotami, ale nie przypisałbym temu tak dużej wagi, ponieważ warunki, w których warunki mogą być takie same (z wyjątkiem wcześniej wspomnianej sprawy) a do dobrego RDBMS nie ma znaczenia, gdzie określisz swoje kryteria.
Mała wskazówka: zapoznaj się z planem wykonania, który może dać nieco więcej wglądu. SQL ma wiele optymalizacji zapytań. – Zyphrax