Wyjaśnienie działania Join'ów

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

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1