Melden Sie sich selbst wieder an der Tabelle an, um den tatsächlichen Elternteil des Kindes zu finden.
SELECT c1.CategoryID, c2.ParentCategoryID, c1.Name, c2.Name as ParentName, c1.Published, c1.Deleted, c1.PictureID
FROM Nop_Category c1
JOIN Nop_Category c2 on c1.ParentCategoryId = c2.CategoryId
WHERE (c1.Deleted = 0)
AND (c1.Published = 1)
AND (c1.ParentCategoryID = 10)
Dies würde beide Kinder der Kategorie "Computer" zurückgeben. Ist es das, wonach Sie suchen?
Natürlich können Sie dies umkehren, um alle Kinder eines bestimmten Elternteils oder von allen Eltern anzuzeigen:
SELECT c.*, p.* -- shortened, but you should pick specific columns
FROM Nop_Category p -- parent
JOIN Nop_Category c ON c.ParentCategoryId = p.CategoryId -- children
WHERE p.ParentCategoryId = 0 -- all top level parents
SELECT c.*, p.* -- shortened, but you should pick specific columns
FROM Nop_Category p -- parent
JOIN Nop_Category c ON c.ParentCategoryId = p.CategoryId -- children
WHERE p.CategoryId = 10 -- only the "Computers" category
Oder, wenn Sie nur die untergeordneten Elemente der Kategorie „Computer“ haben möchten, ändern Sie Ihre ParentCategoryId in 10
SELECT CategoryID, ParentCategoryID, Name, Published, Deleted, PictureID
FROM Nop_Category
WHERE (Deleted = 0)
AND (Published = 1)
AND (ParentCategoryID = 10)