URL: https://www.overclockers.at/coding-stuff/mysql_verschiedene_joins_134436/page_1 - zur Vollversion wechseln!
gleich mal vorbweg, ich bin kein programierer, sondern beschöftige mich nur mit php/mysql als hobby.
was ich mich schon länger frage, mysql hat verschiedene join's. was ist da der unterschied? da gibts lt. docu:
Zitattabellen_verweis, tabellen_verweis
tabellen_verweis [CROSS] JOIN tabellen_verweis
tabellen_verweis INNER JOIN tabellen_verweis join_bedingung
tabellen_verweis STRAIGHT_JOIN tabellen_verweis
tabellen_verweis LEFT [OUTER] JOIN tabellen_verweis join_bedingung
tabellen_verweis LEFT [OUTER] JOIN tabellen_verweis
tabellen_verweis NATURAL [LEFT [OUTER]] JOIN tabellen_verweis
{ oder tabellen_verweis LEFT OUTER JOIN tabellen_verweis ON bedingungs_ausdruck }
tabellen_verweis RIGHT [OUTER] JOIN tabellen_verweis join_bedingung
tabellen_verweis RIGHT [OUTER] JOIN tabellen_verweis
tabellen_verweis NATURAL [RIGHT [OUTER]] JOIN tabellen_verweis
in der Erklärung steht aber genau drinnen was was is...
edit: Soll heissen: ich könnts jetzt auf anhieb nicht genauer/besser erklären, vielleicht kannst du sagen, was genau du nicht verstehst?
erklrät sind eigentlich nur NATURAL [LEFT] JOIN, RIGHT JOIN und STRAIGHT_JOIN. was ist mit INNER JOIN, oder [CROSS] JOIN oder was hat es mit dem OUTER wie in LEFT [OUTER] JOIN auf sich?
hier die erklärungen von mysql.com:
Zitat# Der NATURAL [LEFT] JOIN zweier Tabellen ist definiert als semantisch identisch äquivalent zu einem INNER JOIN oder einem LEFT JOIN mit einer USING-Klausel, die alle Spalten nennt, die in beiden Tabellen existieren.
ok, das kapier sogar ich ^^Zitat# RIGHT JOIN funktioniert analog wie LEFT JOIN. Um Code zwischen Datenbanken portabel zu halten, wird empfohlen, LEFT JOIN anstelle von RIGHT JOIN zu benutzen.
Zitat# STRAIGHT_JOIN ist identisch mit JOIN, ausser dass die linke Tabelle immer vor der rechten Tabelle gelesen wird. Das kann in den (wenigen) Fällen benutzt werden, wo der Optimierer die Tabellen in die falsche Reihenfolge bringt.
ich hab (My)SQL auch nicht "gelernt" -> habs auch nur von diversen seiten gelernt...
Also, es gibt im Prinzip nur zwei formen von joins:
den INNER
und den OUTER JOIN
der unterschied der beiden liegt darin, dass beim inner join tatsächlich nur die zeilen vorhanden sind, bei denen die join-condition zutrifft
wobei beim outer join die zeilen der linken (oder rechte, abhängig ob LEFT oder RIGHT outer join) tabelle komplett vorhanden sind, und dort wo die join-condition nicht zutrifft die felder der rechten (oder halt linken bei right) NULL sind
LEFT JOIN ist immer ein OUTER join
ich hoffe ich habe deine frage jetzt halbwegs verständlich beantwortet... 
ja, ich glaube jetzt hab ichs halbwegs verstanden.
thx
MIK
Hi,
ich würd dir dieses Buch empfehlen:
Datenbankbuch
haben wir auf der Uni verwendet und ich muss sagen das is echt was wert. dauert vieleicht eine Woche bist man sich ordentlich reingelesen hat, aber es is sicher 100mal besser als dein bisheriger Weg (nicht böse gemeint aber: learning by doing bringt in diesem bereich wirklich nicht)
grüsse
sorry, das halte ich für absolut falsch.Zitat von gerhardtt(nicht böse gemeint aber: learning by doing bringt in diesem bereich wirklich nicht)
grüsse

Zitat von watchoutsorry, das halte ich für absolut falsch.
learning by doing ist das einzige was auf die dauer was bringt, denn was man nicht anfassen kann vergisst man schnell wieder.
Also ich versuch mal zu helfen:
hth.... wenn nicht, dann kauf dir das Buch
mfg
jo, das ist hilfreich. thx 
aber mal schaun, vielleicht find ich das buch ja in der uni-bibliothek.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026