SeRi: Problem mit SQL-Statement

Beitrag lesen

Hallo Forumsteilnehmer,

ich habe Probleme mit einem SQL-Statement (MySql). Im Folgenden die Erläuterung der Tabellen:

Tabelle "agent_portfolio_2_categories": Vermittlertabelle zwischen der Portfolio-Tabelle und der Kategorien-Tabelle

Tabelle "data_portfolio": Portfolio-Daten

Tabelle "define_portfolio_categories": Kategorien

Die Kategorientabelle bildet mittels eines ParentId-Feldes eine Hierarchie mit zwei Ebenen ab:

Id | Name ParentId
----------------------------------------
1 | Leinwand NULL
2 | Frauenportraits 1
3 | Abstraktes 1
4 | Andere Themen 1
5 | Tonpapier NULL
6 | Anderes Material NULL

Die Abfrage für die Hierarchie muss also folgendermaßen lauten:
----------------------------------------------------------------------------
SELECT
    Level1.Id AS MainId,
    Level1.Name AS MainCategory,
    Level2.Id AS SubId,
    Level2.Name AS SubCategory
FROM
    define_portfolio_categories AS Level1
LEFT JOIN
    define_portfolio_categories AS Level2
ON
    Level2.ParentId = Level1.Id
WHERE
    Level1.ParentId IS NULL
----------------------------------------------------------------------------

Nun sollen natürlich auch noch die Gemäldedaten aus der Portfolio-Tabelle über die Vermittlertabelle mit eingebunden werden:
----------------------------------------------------------------------------
SELECT
    Level1.Id AS MainId,
    Level1.Name AS MainCategory,
    Level2.Id AS SubId,
    Level2.Name AS SubCategory,
    Portfolio.Id,
    Portfolio.Name,
    Portfolio.Filename,
    Portfolio.Material,
    Portfolio.Width,
    Portfolio.Height
FROM
    data\_portfolio AS Portfolio
LEFT JOIN
    agent_portfolio_2_categories AS Portfolio2Categories
ON
    Portfolio.Id = Portfolio2Categories.PortfolioId
LEFT JOIN
    define_portfolio_categories AS Level1
ON
    Level1.Id = Portfolio2Categories.CategoryId
LEFT JOIN
    define_portfolio_categories AS Level2
ON
    Level2.ParentId = Level1.Id
WHERE
    Level1.ParentId IS NULL
ORDER BY
    Portfolio.Name
----------------------------------------------------------------------------

Hier kommt allerdings immer Murx raus, egal was ich schon versucht habe zu verändern.