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.