Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedzi (2)

  • 0

Witam,

różnica między "left/right outer join", a "inner join" jest następująca - pierwszy zapis weryfikuje, czy dane z tabeli po lewej/prawej da się sparować z tymi z "drugiej" strony. Jeżeli nie, to wymagane pole uzupełnia NULL'ami.
Drugi zapis natomiast pokazuje tylko i wyłącznie dane, które udało się sparować.

Reasumując, stosując left/right outer join, możemy uzyskać więcej rekordów niż w przypadku inner join, gdzie dane są obligatoryjne.

Robert_Kruczek
  • Odpowiedział
  • @ Robert_Kruczek | 28.09.2013
    • 4
    • 5
    • 13
  • 3

Robert wyjaśnił to od strony technicznej.

Ja posłużę się przypadkiem biznesowym, aby pokazać kiedy stosujemy lewe złączenie.

Wyobraźmy sobie, że posiadamy system HR, który zawiera tabelę z pracownikami oraz tabelę ze stanowiskami. Każdy pracownik ma przypisane jedno stanowisko.

Musimy przygotować raport-zestawienie, ile osób pracuje na danym stanowisku:

Stanowisko Liczba osób
Prezes 1
Dyrektor 3
Programista 10
Kierowca 0

 

W przypadku, gdy zastosujemy złączenie wewnętrzne (inner join) zestawienie zawierać będzie tylko te stanowiska, na których pracuje choć jedna osoba. Jeśli na którymś stanowisku nikt nie pracuje, takie stanowisko nie pojawi się na zestawieniu, np. w naszym przypadku Kierowca.

Zestawienie jednak powinno zawierać kompletną listę stanowisk. Aby to uzyskać, należy zastosować lewe złączenie zewnętrzne (left outer join), aby pobrać z tabeli stanowiska te rekordy, do których nie ma żadnych odwołań.

W praktyce najczęściej stosuje się złączenie wewnętrzne, ale jak widać, są przypadki, w których nie obejdziemy się bez złączenia, dlatego należy je rozumieć i stosować w odpowiednich sytuacjach.

 

 

 

 

 

 

 

 

 

  • Odpowiedział
  • @ | 09.04.2014
  • TRENER ALTKOM AKADEMII