Hallo Community,
ich habe ein Problem bei einer MySQL abfrage, eventuell kann mir jemand weiterhelfen ich habe sämtliche Kombinationen probiert bekomme aber nicht das gewünschte Ergebnis.
Ich habe folgende Tabellen in der Datenbank:
Tabelle "articles":
articleID (INT-11, PRIMARY, auto_inc),
articleContent (LONGTEXT),
articleAuthor (INT-11)
Tabelle "users":
userID (INT-11, PRIMARY, auto_inc),
userAlias (VARCHAR-255),
Tabelle "elements":
In dieser Tabelle werden Gruppen, Menüs und Kategorien gespeichert.
Um was es sich handelt ist in der Spalte "elementType" festgelegt.
elementID (INT-11, PRIMARY, auto_inc),
elementType (ENUM),
elementName (VARCHAR255)
Tabelle "relation":
Diese Tabelle soll die Elemente aus der Tabelle "elements" verbinden.
Zum Beispiel kann eine User aus der Tabelle "users" mit einer Gruppe aus der Tabelle "elements" verbunden werden. Was mit dem Element verknüpft wird ist in der Spalte "relationType" festgelegt.
relationID (INT-11, PRIMARY, auto_inc),
elementID (INT-11),
relationType (ENUM)
relationLink (INT-11)
Nun habe ich folgende Abfrage:
SELECT
a.articleID,
a.articleContent,
b.userAlias AS articleAuthor,
d.elementName AS articleCategory
FROM articles AS a
INNER JOIN user AS b
ON (a.articleAuthor = b.userID)
LEFT JOIN relation AS c
ON (a.articleID = c.relationLink)
LEFT JOIN elements AS d
ON (c.elementID = d.elementID)
WHERE (c.relationType = 'article')
AND (d.elementType = 'category')
AND (a.articleID = '1')
Es wäre möglich das ein Artikel mit einer Kategorie verbunden ist dies muss aber nicht sein und genau da liegt das Problem. Bis zum "INNER JOIN" funktioniert alles. Nur die beiden "LEFT JOINS" funktionieren natürlich nicht. Ich habe aber leider keine Lösung gefunden.
Kann mir jemand helfen das zum "Laufen" zu bekommen?
Liebe Grüße,
Markus