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.