3 Tabellen miteinander verknüfpen
BioTob
- datenbank
Hi leute,
ich habe in meiner Datenbank 3 Tabellen (User, News, NewsCategories). Nun benötige ich für die Ausgabe der News, den Titel der Nachricht (news.Header), den Nachrichtentext (news.body), das Datum der Veröffentlichung (news.DateAdded), die Newskategorie (newscategories.NewsCat) und den Usernamen (user.name).
über LEFT JOIN kann ich meines Wissens nach nur 2 tabellen verknüpfen.
Kann ich auch mehrere Tabellen verknüpfen????
Wenn ja wie?
Hi,
du kannst mit allen Arten von JOINS grundsätzlich eine "beliebige" Anzahl an Tabellen verknüpfen:
SELECT ...
FROM t1
(LEFT|RIGHT|INNER|OUTER) JOIN
t2
ON t1.xx=t2.xx
(LEFT|RIGHT|INNER|OUTER) JOIN
t3
ON t2.yy=t3.yy
MfG
Rouven
yo,
- Oder die Variante mit dem kartesischen Produkt:
SELECT ...
FROM t1, t2, t3
WHERE
t1.xx = t2.xx
AND t2.yy = t3.yy
entspricht dem inner join und ist nur eine andere schreibweise. das kartesische produkt wird nur gebildet, wenn die joinverbindung in der WHERE klasuel weggelassen wird.
Ilja
yo,
über LEFT JOIN kann ich meines Wissens nach nur 2 tabellen verknüpfen.
eine SELECT Anweisung ist grundsätzlich nicht auf eine bestimmte anzahl von Tabellen beschränkt, aus denen Daten abgerufen werden können. pro join anweisung werden zwar 2 tabellen miteinander verknüpft. aber eine selectanweisung kann mehrere dieser join answeisungen beinhalten. die regel sagt, für n tabellen die miteinander verknüpft werden sollen, braucht man n-1 join verknüpfungen.
Wenn ja wie ?
das kommt immer drauf an, was genau du machen willst. in deinem beispiel brauchst du aller wahrscheinlichkeit nach keinen left join, sondern sogennante inner joins. je nachdem welches datenbanksystem du benutzt und wie deine drei tabellen miteinander verbunden sind, wird die select anweisung gebildet.
Ilja