Oferty pracy dla inżynierów
  • StrefaInzyniera.pl (current)
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektronika
    • Automatyka
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Zaloguj się
  • STREFA INŻYNIERA
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektroniki
    • Automatyki
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Logowanie
  • Zaloguj się
Categories SQL

Kolejność tabel w złączeniach zewnętrznych

Stwierdziliśmy wcześniej, że kolejność, w jakiej wymieniane są tabele w złączeniu wewnętrznym, nie jest istotna. Nie można powiedzieć tego samego o złączeniach zewnętrznych. Zarówno w przypadku złączeń lewostronnych, jak i prawostronnych kolejność wymieniania tabel ma znaczenie. Jednakże istnieje w tym zakresie pewna elastyczność w sytuacjach, w których wyliczane są co najmniej trzy tabele. Wówczas kolejność słów kluczowych LEFT (lub RIGHT) JOIN można dowolnie zmieniać.

Spójrzmy jeszcze raz na oryginalną klauzulę FROM z pierwotnej instrukcji SELECT:

FROM Klienci
LEFT JOIN Zamówienia
ON Klienci.IDKlienta = Zamówienia.IDKlienta
LEFT JOIN Zwroty
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia

Widzieliśmy już, że możemy najpierw wymienić tabelę Zwroty, a na końcu wyszczególnić tabelę Klienci, jeśli tylko zmienimy rodzaj złączenia na prawostronne, tak jak poniżej:

FROM Zwroty
RIGHT JOIN Zamówienia
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia
RIGHT JOIN Klienci
ON Klienci.IDKlienta = Zamówienia.IDKlienta

Czy jest zatem możliwe wymienienie najpierw tabeli Klienci, potem tabeli Zwroty, a na końcu tabeli Zamówienia? Tak, jeśli zastosujemy w jednej instrukcji SELECT zarówno złączenia zewnętrzne, jak i wewnętrzne i dodamy kilka nawiasów. Poniższy fragment zapytania jest równoznaczny z podanym powyżej:

FROM Klienci
LEFT JOIN (Zwroty
RIGHT JOIN Zamówienia
ON Zamówienia.IDZamówienia = Zwroty.IDZamówienia)
ON Klienci.IDKlienta = Zamówienia.IDKlienta

To, co początkowo wydawało się dość prostą instrukcją, teraz stało się niepotrzebnie skomplikowanym zapytaniem. Powyższy fragment instrukcji prezentujemy tylko po to, by pokazać, jak nie budować złączeń i że należy zwracać uwagę na tego rodzaju zapisy podczas analizy kodu. Radzimy zatem zawsze stosować słowo kluczowe LEFT JOIN i unikać wykorzystywania nawiasów przy tworzeniu złożonych klauzul FROM, w których wymienianych jest wiele tabel.

 

Język SQL. Przyjazny podręcznik. Wydanie II Autor: Larry Rockoff Wydawnictwo: Helion

Zaloguj się aby dodać komentarz

Podobne artykuły

« Złączenia pełneZłączenia prawostronne RIGHT JOIN »

Podziel się ze znajomymi tym artykułem - udostępnij na FB lub wyślij e-maila korzystając z poniższych opcji:

Oferty pracy dla inżynierów
Oferty pracy dla inżynierów

Elektroautomatyk Utrzymania Ruchu

SPX Flow Inc.
Bydgoszcz, kujawsko-pomorskie

Inżynier Jakości

SPX Flow Inc.
Bydgoszcz, kujawsko-pomorskie

Customer Quality Engineer

GKN Automotive
Oleśnica, dolnośląskie

Design Engineer

GKN Automotive
Oleśnica, dolnośląskie

Asystent/ka działu produkcji

ENCO Sp. z o.o.
Warszawa, mazowieckie

Inżynier ds. zarządzania produkcją

Wemeco Poland Sp. z o.o.
Kudowa-Zdrój , dowolny Region

wszystkie oferty
PracaTechniczna.pl

Strefainzyniera.pl - rynek, praca, rozwój - wszystko co ważne dla inżynierów

  • Dla pracodawcy
  • Artykuły
  • Praca
  • Publikacje
  • Popularne stanowiska
  • Offer in English
  • Regulamin
  • Regulamin dla klientów
  • Polityka prywatności
  • Polityka cookies
  • Kontakt

© 2011 - 2021 NetPortal

Mapa strony Letnisko blisko