VIEW — виртуальная таблица, строящаяся на основе SQL-запроса.
CREATE VIEW название_представления AS
SELECT столбцы
FROM таблицы
JOIN ... ON ...
WHERE ...;
SELECT *
FROM dog
JOIN poroda ON dog.id_por = poroda.id_por
LEFT JOIN orders ON dog.id_dog = orders.id_dog
SELECT dog.name_dog, poroda.poroda, category.category, orders.cost
SELECT dog.name_dog AS Кличка, poroda.poroda AS Порода
SELECT * FROM dog
LEFT JOIN orders ON dog.id_dog = orders.id_dog
WHERE orders.id_ord IS NULL;
CREATE VIEW is_here AS
SELECT
dog.id_dog AS ID,
category.category AS Категория,
poroda.poroda AS Порода,
dog.name_dog AS Кличка,
dog.color AS Окрас,
dog.age AS Возраст,
orders.cost AS Стоимость
FROM dog
JOIN poroda ON dog.id_por = poroda.id_por
JOIN category ON poroda.id_cat = category.id_cat
LEFT JOIN orders ON dog.id_dog = orders.id_dog
WHERE orders.id_ord IS NULL;
CREATE VIEW sales_by_category AS
SELECT
category.category AS Категория,
COUNT(orders.id_ord) AS Количество_продаж,
SUM(orders.cost) AS Общая_сумма
FROM orders
JOIN dog ON orders.id_dog = dog.id_dog
JOIN poroda ON dog.id_por = poroda.id_por
JOIN category ON poroda.id_cat = category.id_cat
GROUP BY category.category;
Ошибка | Решение |
---|---|
Неправильные JOIN | Проверьте связи: dog.id_por → poroda.id_por |
Некорректный WHERE | Используйте IS NULL для поиска непроданных питомцев |
Сложные запросы | Разбивайте на части. Сначала проверьте SELECT |
Дублирование данных | Добавьте DISTINCT, если нужно убрать повторы |
SELECT * FROM is_here;
DROP VIEW is_here;
SELECT * FROM view_name;