Wyjaśnienie działania Join'ów

Wyjaśnienie działania Join'ów
B1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 70
0

Mam takie pytanie jak poznać, że użyc mam LEFT/RIGHT JOINA, że tabela jest po prawej lewej stronie oraz kiedy używać CROOS/INNER joina.

Na przykładzie takiego diagramu pierwszego lepszego pobranego z internetu.
Załóżmy że chce zrobić sobie

Kopiuj
SELECT * FROM classes c
JOIN teachers t ON t.teacher_id=c.teacher_id

czy zamiast zwykłego joina używa się w tym wypadku LEFT/RIGHT? i dlaczego jak odczytać z diagramu, jaki join powinien zostać zastosowany

erd2.png

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Diagram nie ma tu żadnego znaczenia, znaczenie ma CO CHCESZ DOSTAĆ. Outer join daje ci w wynikach niedopasowane rekordy z jednej stronie, inner join nie. Więc jeśli chcesz dostać listę wszystkich classes, nawet tych bez przypisanego nauczyciela to użyjesz left joina, jeśli chcesz mieć w wynikach wszystkich nauczycieli, nawet tych bez przypisanego classes to użyjesz right joina, a jeśli chcesz tylko listę dopasowanych to join/inner join.

FI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 88

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.