Alle möglichen Joins
Michi
- datenbank
Hi,
ich wäre es nochmal.
Ich habe hier malein paar Joins zusammengestellt:
http://www.pic-upload.de/04.02.09/tpdz5i.jpg
INNER JOIN (Ist mir klar. Er verbinden ON A.P_ID=P.P_ID)
LEFT JOIN (Ist klar)
RIGHT JOIN (Ist klar)
OUTER JOIN (Da denke ich, dass er dann von beiden Tabellen die Zeilen holt, auch wenn sie nicht mit der ON-Bedingungen zusammenpassen)
Habe da aber auch schon mehr gesehen
FULL OUTER JOIN (Unterschiede zu OUTER JOIN?)
FULL INNER JOIN (Gibts das?)
LEFT INNER JOIN (?)
LEFT OUTER JOIN (?)
LEFT FULL OUTER/INNER JOIN (?)
JOIN (Nur Join dürfte dann die Zeilen verbinden, die in Tabelle1 und Tabelle2 komplett Identisch sind, sprich Attribute und die Attributausprägungen)
:-)))
Ich habe hier malein paar Joins zusammengestellt:
http://www.pic-upload.de/04.02.09/tpdz5i.jpg
wer hat dich geritten, dass du einen text als grafik speicherst obwohl TEXT das richtige wäre?
http://aktuell.de.selfhtml.org/artikel/datenbanken/fortgeschrittene-joins/
Tach zusammen,
ich habe mir die join Syntax gerade mal im mySql-Manual angeschaut.
öhm, tja, ganz schön schön schon - schön lang auf jeden Fall.
kennt nicht einer eine vollständige Übersicht mit ähnlich guten Erklärungen wie die von Michi?
Nein, ich habe noch nicht gegoogelt, sondern freue mich auf Eure Tipps.
Danke. ;-)
Gruß vom foomaker
Hallo,
kennt nicht einer eine vollständige Übersicht mit ähnlich guten Erklärungen wie die von Michi?
richtigere gibt es in den Join-Artikeln in SELFHTML aktuell:
Einführung in Joins
Fortgeschrittene Jointechniken
Freundliche Grüße
Vinzenz
yo,
INNER JOIN (Ist mir klar. Er verbinden ON A.P_ID=P.P_ID)
jein, einer INNER JOIN muss nicht auf gleichheit prüfen, es könnte auch ein Non-Equi INNER JOIN sein (theta join). Wichtig ist zu wissen, dass ein INNER JOIN nur datensätze aus zwei Tabellen miteinander verbindet, wo die bedingung (welche das auch immer ist) zutrifft. das wäre zum beispiel auch ein INNER JOIN:
SELECT *
FROM tab1
INNER JOIN tab2 ON tab2.spalte > tab1.spalte
LEFT JOIN (Ist klar)
RIGHT JOIN (Ist klar)
im gegensatz zum INNER JOIN, verbinden diese beiden joins eben nicht nur die Datensätze, wo die join bedingung zutrifft, sondern auch von einer Tabelle die Datensätze, wo es nicht zutrifft. die betonung liegt hier auf einer, nämlich entweder der linken oder rechten tabelle.
OUTER JOIN (Da denke ich, dass er dann von beiden Tabellen die Zeilen holt, auch wenn sie nicht mit der ON-Bedingungen zusammenpassen)
von der sache her hast du recht, allerdings sollte diese form der schreibweie einen syntax fehler geben. entweder schreibst du FULL JOIN oder FULL OUTER JOIN, sprich das wort OUTER is beim FULL als auch beim LEFT/RIGHT join optional.
FULL OUTER JOIN (Unterschiede zu OUTER JOIN?)
andere schreibweise zum OUTER JOIN, siehe oben
FULL INNER JOIN (Gibts das?)
macht in meinen augen keinen sinn und gibt es wohl auch nicht.
LEFT INNER JOIN (?)
macht meiner meinung nach ebenfalls keinen sinn
LEFT OUTER JOIN (?)
andere schreibweise zum LEFT JOIN, siehe oben
LEFT FULL OUTER/INNER JOIN (?)
macht wohl ebenfalls keinen sinn
JOIN (Nur Join dürfte dann die Zeilen verbinden, die in Tabelle1 und Tabelle2 komplett Identisch sind, sprich Attribute und die Attributausprägungen)
hmm, meines wissen nach nur eine andere schreibweise für einen INNER JOIN
Ilja
Hi Ilya,
vielen Dank für die Hilfestellungen. Das werde ich mir heute Abend mal verinnerlichen. Die Datenbankklausur ist auch endlich mal vorbei.
Sehr stressig waren die ganzen komischen Abhängigkeiten. Sei es funktionale, triviale, transivite Abhängigkeiten :-)
Was mich aber generell interessieren würde, wie ich die Frage 1 in etwa realisieren kann, wie in diesem Thread:
http://forum.de.selfhtml.org/?t=182842&m=1210563
Ich werde mich übers Wochenende wahrscheinlich auch mit Transaktionen befassen und evtl. wie man eine DB über das Netzwerk, sprich über das Internet auch erreichbar machen kann.
Davor müsste ich mir aber erst überlegen, ob MySQL oder Postgres zum Einsatz kommt.
Grüße