Ich möchte die vollständigen Knoten aus vorhandenen rekursiven Kategoriebaum erhalten, wenn die Produkttabelle eine passende Kategorie hat.So finden Sie einen vollständigen Knoten in einer rekursiven SQL-Abfrage
Ich habe folgendes.
WITH ret AS (
SELECT ID, ParentID, ProductCategoryId, ProductCategoryName
FROM ProductCategoryTree as p1, Products as p2
WHERE p1.ProductCategoryId = p2.ProductCategoryId
UNION ALL
SELECT p.ID, p.ParentID, p.ProductCategoryId, p.ProductCategoryName
FROM ProductCategoryTree as p INNER JOIN
ret r ON p.ParentID = r.ID
)
SELECT DISTINCT ID, ParentID, ProductCategoryId, ProductCategoryName
FROM ret;
Dies wird die Kategorie des Produkts geben Sie mir und alle untergeordneten Knoten dieser Kategorie, aber ich müsste auch die Kategorie erhalten (oder Kategorien) von der oberen Ebene (n).
Jede Hilfe wäre sehr willkommen!
Welche Datenbank verwenden Sie? Was passiert, wenn Sie die Eltern-Kind-Relation beim letzten Join umkehren: "ret r ON p.ID = r.ParentID"? –
Hallo Tamas, es ist SQL Server. Ich habe deinen Vorschlag getestet und nach ersten Tests denke ich, dass es den Trick geschafft hat! So einfach, aber effektiv :) Vielen Dank. – punatiainen