Результаты
-- Создание таблицы Categories
CREATE TABLE Categories (
CategoryID INT PRIMARY KEY,
CategoryName NVARCHAR(50) NULL
);
-- Создание таблицы Products
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName NVARCHAR(50) NULL,
);
-- Создание таблицы ProductCategories
CREATE TABLE ProductCategories (
ProductID INT,
CategoryID INT,
PRIMARY KEY (ProductID, CategoryID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID),
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);
-- Вставка данных в таблицу Categories
INSERT INTO Categories (CategoryID, CategoryName) VALUES
(1, 'Electonics'),
(2, 'Clothes'),
(3, 'Accessories'),
(4, NULL); -- Фиктивная категория для продуктов без категории
-- Вставка данных в таблицу Products
INSERT INTO Products (ProductID, ProductName) VALUES
(1, 'Smart'),
(2, 'Tshirt'),
(3, 'Watch'),
(4, 'Jeans');
-- Вставка данных в таблицу ProductCategories
INSERT INTO ProductCategories (ProductID, CategoryID) VALUES
(1, 1), -- Смартфон относится к категории "Электроника"
(1, 3), -- Смартфон также относится к категории "Аксессуары"
(2, 2), -- Футболка относится к категории "Одежда"
(3, 1), -- Часы относятся к категории "Электроника"
(4, 4); -- Джинсы относятся к фиктивной категории
SELECT P.ProductName, ISNULL(C.CategoryName, 'No category') AS CategoryName
FROM Products P
LEFT JOIN ProductCategories PC ON P.ProductID = PC.ProductID
LEFT JOIN Categories C ON PC.CategoryID = C.CategoryID
ProductName CategoryName
-------------------------------------------------- --------------------------------------------------
Smart Electonics
Smart Accessories
Tshirt Clothes
Watch Electonics
Jeans No category