У меня есть 3 таблицы:
CREATE TABLE [dbo].[ProductCategory](
[categoryID] [int] IDENTITY(1,1) NOT NULL,
[categoryParentID] [int] NULL,
[categoryName] [nvarchar](200) NOT NULL
)
CREATE TABLE [dbo].[Product]
(
[productID] [bigint] IDENTITY(1,1) NOT NULL,
[productName] [nvarchar(100)] NOT NULL,
.
.
)
CREATE TABLE [dbo].[ProductToCategoryLink]
(
[productID] [bigint] NOT NULL,
[categoryID] [int] NOT NULL
)
Пример данных примера:
Продукт:
1, 'Book_1 ';
2,' Book_2 ';
Категория продукта:
1, NULL,' Книги ';
2, 1, 'Подкатегория книг lvl_1';
3, 2, 'Подкатегория книг lvl_2';
4, 3, 'Подкатегория книг lvl_3';
ProductToCategoryLink:
1, 4;
2, 2;
Вопрос: Как получить все родительские и дочерние категории, к которым относится каждый продукт?
Итак, мне нужно получить что-то вроде этого:
productID, productName, categoryID, categoryName
1, 'Book_1', 1, 'Книги ';
1,' Book_1 ', 2,' Подкатегория книг lvl_1 ';
1,' Book_1 ', 3,' Подкатегория книг lvl_2 ';
1, 'Book_1', 4, 'Подкатегория книг lvl_3';
2, 'Book_2', 1, 'Книги';
2, 'Book_2', 2, 'Подкатегория книг lvl_1';