czwartek,
SQL: Klasyczne łączenie tabel
W SQL, złączenia tabel bez użycia słowa kluczowego JOIN
można zrealizować przez stosowanie klasycznej składni z klauzulą WHERE
. Ten sposób łączenia tabel był szczególnie popularny w starszych wersjach SQL i nadal jest wspierany przez większość systemów baz danych. Oto jak to wygląda:
Składnia
SELECT kolumny
FROM tabela1, tabela2
WHERE tabela1.kolumna_wspolna = tabela2.kolumna_wspolna;
Przykład
Załóżmy, że mamy dwie tabele: Klienci
i Zamówienia
. Każde zamówienie jest powiązane z klientem poprzez IDKlienta
.
Tabela Klienci
IDKlienta | Imie |
---|---|
1 | Jan |
2 | Maria |
3 | Paweł |
Tabela Zamówienia
IDZamowienia | IDKlienta | Produkt |
---|---|---|
101 | 1 | Laptop |
102 | 2 | Telefon |
103 | 1 | Tablet |
Zapytanie łączące przykładowe tabele
SELECT Klienci.Imie, Zamówienia.Produkt
FROM Klienci, Zamówienia
WHERE Klienci.IDKlienta = Zamówienia.IDKlienta;
Wynikiem tego zapytania będzie lista produktów zamówionych przez każdego klienta.
Uwagi
- Ta metoda może prowadzić do tzw. "Cartesian product" (iloczynu kartezjańskiego), jeśli warunek złączenia nie jest właściwie określony. Oznacza to, że bez odpowiedniego warunku złączenia, każdy wiersz z pierwszej tabeli zostanie sparowany z każdym wierszem z drugiej tabeli, co może prowadzić do bardzo dużej liczby wyników.
- Nowoczesne podejście z użyciem
JOIN
(np.INNER JOIN
,LEFT JOIN
) jest bardziej elastyczne i czytelne, szczególnie w przypadku skomplikowanych zapytań z wieloma złączeniami. - Pomimo że ta starsza metoda jest nadal obsługiwana przez większość systemów baz danych, zaleca się stosowanie składni z
JOIN
, aby zapytania były bardziej zrozumiałe i łatwiejsze w utrzymaniu.