Hi Forum,
ich komme zwar mit leichten Joins zurecht, bei mir hakt es aber, wenn keine Beziehungen zwischen mehreren Tabellen da sind.
Tabelle News
NewsID Thema Hits Kommentare Kategorie
1 Liebe und Partnerschaft 10 1 2
2 EU Krise 5 0 2
(JA ich könnte eventuell die Spalte Kommentare sparen)
Tabelle Kommentare
ID NewsID UserID Kommentar
1 1 1234 Ich halte nichts von Liebe
Tabelle User
UserID Name Geschlecht
1234 Heinz Weiblich
Was kein Problem nun kein Problem ist, wenn zwischen Thema und Kommentare eine Verbindung da ist.
SELECT A.Thema, A.Hits, A.Kommentare, B.Kommentar FROM News AS A INNER JOIN Kommentare AS B on A.NewsID=B.NewsID where A.Kategorie=2;
Jetzt holt er schön die erste News (Liebe und Partnerschaft), da die Verbindung A.NewsID=B.NewsID ja besteht. Die Frage ist, ob er die zweite News (EU Krise) holt, weil dazu ja kein Kommentar besteht und somit A.NewsID=B.NewsID nicht zutrifft.
Bzw. wenn ich auf eine Dritte Tabelle zugreife und eine Beschränkung für die dritte Tabelle einfüge, sollte er dennoch den zweiten News holen:
SELECT A.Thema, A.Hits, A.Kommentare, B.Kommentar FROM News AS A INNER JOIN Kommentare AS B on A.NewsID=B.NewsID INNER JOIN User AS C on B.UserID=C.userID where A.Kategorie=2 AND C.Geschlecht="Weiblich";
Ich hoffe, ich finde auch eine Lektüre, wo die Unterschiede zwischen INNER JOIN, LEFT JOIN, OUTER JOIN usw. verständlich erklärt werden.
Es gibt auch manche Programmierer, die die Tabellen einfach mit Komma getrennt hinten auflisten:
SELECT A.Thema, A.Hits, A.Kommentare, B.Kommentar FROM News AS A, Kommentare AS B on A.NewsID=B.NewsID where A.Kategorie=2;
Grüße