yo Vinzenz & Rouven,
ich fasse euch beide mal zusammen. werde auch nur kurz antworten, weil es doch schon spät ist. was die verständlichkeit für anfänger betrifft, so ist es mehr ein gefühl als etwas konkretes. das wird euch wenig weiterhelfen, aber da muss ich erst einmal mir selbst helfen und der sache auf den grund gehen.
oracle arbeitet meines wissens die tabellen von rechts nach links ab. auch dort gibt es eine andere schreibweise einen OUTER JOIN zu verwirklichen, mann muss nicht die typische OUTER JOIN ...ON syntax benutzen, auch wenn Oracle diese nun beherscht. das hat zum teil erheblichen einfluss auf die performance einer abfrage. wie auch immer, ich würde das thema impliziet oder aber reihenfolge einfach weglassen, wenn es um JOINS für anfänger geht. das geht eher in richtung optimierung.
ein inner join ist kein equi join, auch wenn er meistens so angewandt wird. das sind aber zwei verschiedene paar schuhe.
ich zitiere kurz aus meiner Antwort auf Danielas Posting
<zitat>
Fehlende Themen:
- Natural Joins
Vielleicht auf dem Weg von der Normalisierung zurück die Zwischenschritte Equijoin und Natürlicher Join (der Theorie) vorstellen. In den meisten Fällen wird man eher eine Projektion verwenden, die noch ein paar Spalten mehr ausblendet als nur die doppelte :-)
</zitat>
ein natural join hat erst einmal wenig mit der unterscheidung zwischen einem equi join und einem inner join zu tun, auch wenn er natürlich diese methoden verwendet. grundsätzlich unterscheidet man zwischen einem equi und non-equi join. man kann die tabellen nämlich auch mit < oder > operatoren verknüpfen. oder mit anderen worten ein inner join wird sicherlich meistens ein equi join sein, das ist der outer join aber auch. equi steht quasi für die verwendung des '=' zeichen.
Ich finde das kartesische Produkt schon wichtig, vor allem weil es gelegentlich unfreiwillig erzeugt wird, besonders von Anhängern der impliziten Joinsyntax.
sicherlich ist die erwähnung des karthesischen produktes wichtig, aber dann doch auch im richtigen zusammenhang.
Diesen Weg fand ich nun wieder gut, weil er Joins motiviert. Es gibt genug Argumente der Form: "Joins, wozu brauch' ich das. Ich habe eh' alles in einer Tabelle!"
das widerspricht euch aber ein wenig selbst. zum einen sagt ihr, fachbegriffe raus halten, weil es eben in der hauptsache um joins geht und man auf dieses kapitel verweisen will. wenn man nun aber auf dieses kapitel verweißt, dann doch nur, weil jemand schon konkrete fragen zu einem JOIN hat, man muss quasi das bedürfniss nicht mehr erzeugen, wie enstehen joins. ich würde die normalisierung komplett weglassen, ist ein verwirrendes thema für sich.
ok, nun aber ab ins bett, brauche schlaf....
Ilja