Here goes I hop this helps - I have way oversimplified it but hopefully enough info is here :My Category table :CREATE TABLE [dbo].[tblCategory]( [ID] [int] NOT NULL, [ParentID] [int] NULL, [Name] [varchar](150) NOT NULL, CONSTRAINT [PK_tblCategory] PRIMARY KEY CLUSTERED ( [ID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]INSERT INTO tblCategory (ID, ParentID, Name) VALUES (1, 0, 'Power Tools')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (2, 0, 'Hand Tools')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (3, 1, 'Drills')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (4, 1, 'Saws')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (5, 1, 'Planers & Thicknessers')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (6, 3, 'Twist Drills')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (7, 3, 'Hammer Drills')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (8, 5, 'Planers')INSERT INTO tblCategory (ID, ParentID, Name) VALUES (9, 5, 'Thicknessers')
My Product Table :CREATE TABLE [dbo].[tblProduct]( [ProductID] [int] NOT NULL, [ProductName] [varchar](150) NOT NULL, [CategoryID] [int] NOT NULL CONSTRAINT [PK_tblProduct] PRIMARY KEY CLUSTERED ( [ProductID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]INSERT INTO tblProduct (ProductID, ProductName, CategoryID) VALUES (1, 'A Twist Drill', 6)INSERT INTO tblProduct (ProductID, ProductName, CategoryID) VALUES (2, 'Another Twist Drill', 6)INSERT INTO tblProduct (ProductID, ProductName, CategoryID) VALUES (3, 'A Hammer Drill', 7)INSERT INTO tblProduct (ProductID, ProductName, CategoryID) VALUES (4, 'Another Hammer Drill', 7)INSERT INTO tblProduct (ProductID, ProductName, CategoryID) VALUES (5, 'A Planer with Drill in the name', 9)
This is my CTE that gives me for example all categories under Category ID 1 (Power Tools)WITH subnodes( Distance, ID, Name, Node_Seq )AS( SELECT 0,h.ID,h.Name, CONVERT( varchar(80), ltrim(str(h.ID))) as Node_Seq FROM tblCategory hWHERE h.ID = 1UNION ALL SELECT distance+1,h.ID,h.Name, CONVERT( varchar(80), sn.Node_Seq + '.' + ltrim(str(h.ID))) FROM tblCategory h INNER JOIN subnodes sn ON h.ParentID = sn.ID) SELECT Distance, ID, Name, Node_Seq FROM subnodes
So I want to be able to search the product table say for the term "drill" that would return all 5 product records in my listing - but in my summary categorisation I'd ideally want to show initially "Drills" and "Planers & Thicknessers" then if the choose "Drills" it clicks through to show "Electric Drills" and "Hammer Drills" which is the lowest level click through.So if I feed in search critera and the selected category id, I just want the next level down of categories returned as my results.I hope that makes sense!