Я пытаюсь улучшить свои знания SQL и делаю упражнения на sql-ex.ru.
И теперь я застрял с такой проблемой.У меня есть такая задача:
* Схема базы данных состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
Таблица Продукт включает в себя информацию о производителе, номер модели и тип («ПК», «Ноутбук» или «Принтер»).Предполагается, что номера моделей в таблице Product являются уникальными для всех производителей и типов продуктов.
Каждый ПК с уникальным указанием кода в таблице «ПК» характеризуется моделью (внешний ключ ссылается на таблицу «Продукт»), скоростью (процессора в МГц), общим количествомRAM - оперативная память (в Мб), емкость жесткого диска - HD (в Гб), скорость CD-ROM - CD (например, «4x»), и цена.
Таблица Ноутбук аналогичен одному из ПК, за исключением скорости CD-ROM, которая заменяется размером экрана - экраном (в дюймах).Для каждого принтера в таблице «Принтер» указывается, является ли принтер цветным или нет (атрибут цвета «у» для цветных принтеров; в противном случае это «n»), тип принтера (лазерный, струйный или матричный) ицена. *
Найдите модели ноутбуков, у которых скорость меньше, чем у всех ПК.Набор результатов: тип, модель, скорость.
Я набираю такой запрос:
SELECT 'Laptop', Laptop.model,
Laptop.speed FROM Laptop WHERE
Laptop.speed < All (SELECT speed FROM
PC)
Он работает правильно, но веб-сайт сообщает, что он не совсем корректен для любой базы данных:
Обратите внимание, что это решение будет действительным, только если продукты с типом laptop
будут размещены в таблице Laptop.Для нашей базы данных это условие выполняется, потому что существует только три типа товаров и, соответственно, три таблицы.Следовательно, нарушение этого условия может быть связано только с реструктуризацией, что, однако, также следует учитывать при разработке приложений со встроенными SQL-запросами.
Что это значит?И как я могу улучшить свой запрос?Пожалуйста, объясните мне!