Ilja: Alle möglichen Joins

Beitrag lesen

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