Frage zu Unterscheidung von Joins

AnfängerDB

Aktiver Benutzer
Beiträge
25
Hallo, ich habe mal eine Frage die mich lange umherteibt 😅:


Was ist der Unterschied zwischen Allgemeiner Join (JOIN ON) und Natürlicher Join (NATURAL JOIN) ?

Ich hab da echt Probleme einen Unterschied zu sehen, außer in der SQL-Syntax 😉
 
Werbung:
Natural Join erlaubt den Join 2er Tabellen basierend auf identischen Spaltennamen (und Typen), also z.B. PK Spalte von Tabelle1 und passende FK Spalte von Tabelle2. Ausgegeben werden bei Select * alle Spalten, außer Spaltendulikaten, die durch die identische Bennenung resultieren würden. Die dann nur einfach.
"normaler" Join (Inner Join) ergibt die gleiche Menge, alle Spalten (auch doppelte). Der Join basiert allerdings auf expliziter Nennung von den zu joinenden Spalten.
Nach meiner Erfahrung wird fast immer mit expliziten Spaltenangaben gearbeitet. Natural join ist also eher eine akademische Variante, wenn man so will. Zum einen wird das von mehr DB Systemen überhaupt verstanden, bessere Kompatibilität. Zum anderen ist es auch für den Menschen verständlicher, denn das Select * oder selbst ein ausformuliertes Select mit allen eindeutigen Spaltennamen verrät ja nichts, über die tatsächliche Joinspalte.
 
Werbung:
Zurück
Oben