OneCompiler

Решение для Mindbox

204

Результаты

-- Создание таблицы 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