Zum Inhalt springen

wozu die unterschiedlichen joins?


Nahemoth

Empfohlene Beiträge

hi,

ich verstehe nicht ganz wozu die joins da sind.

man kann doch genauso gut alles mit where verknüpfen.

bsp:

SELECT * FROM Customers c

INNER JOIN Orders o ON c.CustomerID = o.CustomerID
ist das selbe wie:
SELECT * from Customers c, Orders o

WHERE c.CustomerID = o.CustomerID

wozu dann das join ?

thx!

Link zu diesem Kommentar
Auf anderen Seiten teilen

da es aber ausser INNER JOIN noch LEFT / RIGHT / (FULL) OUTER JOIN gibt, ist die schreibweise IMO ziemlich obsolet.

also muss ich das so verstehen, dass ich eigentlich garnie nicht mit "joins" direkt arbeiten muss, sondern das auch wie in meinem bsp aufgezeigt lösen kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kommt drauf an.

Manche Datenbanken (vor allem ältere Mysql Versionen) haben beim sog. "Kommajoin" einen schlechteren Ausführungsplan als wenn Du die ANSI Syntax verwendest.

Bei anderen sollte es egal sein. ich persönlich finde die Schreibweise ohne das JOIN Schlüsselwort einfach zu lesen und auch schneller zu schreiben.

Beachte auch, dass Du bei der JOIN Schreibweise zwischen JOIN Bedingung und WHERE Bedingung unterscheiden musst. Auch das ist beim Kommajoin m.M. nach eleganter.

Im Prinzip aber alles Geschmackssache.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast ***F.E.A.R.***Fawkes

also grundsätzlich ist es geschmackssache, welches join du verwendest. einfacher zu schreiben / lesen finde ich persönlich das normale mit where, vor allem mit steigender komplexität. dafür ist es mehr schreibarbeit.

INNER JOIN kann bei großen datenbanken jedoch schneller arbeiten. hintergrund: übers normale join werden erst "unsichtbare" zwischentabellen erzeugt und darauf dann die bedingungen angewendet. bei großen datenbanken kann es eben entsprechend dauern, bis diese zwischentabelllen gebildet wurden. verknüpfst du dann auch noch mehrere db miteinander dauerts noch länger.

INNER JOIN hingegen wendet gleich beim erstellen der db die bedingungen an und erstellt also keine ausführliche zwischen-db und wendet dann die bedingungen an, sondern macht das quasi in einem schritt...

hoffe das war halbwegs verständlich. also im endeffekt nehm einfach das was dir besser passt, solange du nicht zwingend auf high-performance angewiesen bist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

INNER JOIN kann bei großen datenbanken jedoch schneller arbeiten. hintergrund: übers normale join werden erst "unsichtbare" zwischentabellen erzeugt und darauf dann die bedingungen angewendet. bei großen datenbanken kann es eben entsprechend dauern, bis diese zwischentabelllen gebildet wurden. verknüpfst du dann auch noch mehrere db miteinander dauerts noch länger.

INNER JOIN hingegen wendet gleich beim erstellen der db die bedingungen an und erstellt also keine ausführliche zwischen-db und wendet dann die bedingungen an, sondern macht das quasi in einem schritt...

Ich sag jetzt nicht, dass das generell falsch sein muss, aber auf jeden Fall trifft das nicht auf alle Datenbanken zu.

Unter Oracle gibt es definitiv keine Unterschiede zwischen dem Komma Join und der ANSI Syntax was den Ausführungsplan angeht.

Auch werden hier temporäre Tabellen vom Optimizer je nach Gusto angelegt oder auch nicht.

Wenn Du solche Aussagen machst, solltest Du auch immer die DB und die Version angeben.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...