| Vulzscht |
04.07.2008 22:41 |
уху, всем спасибо, читаю понемногу
кстати может кто подскажет/направит на верный путь?
Цитата:
Схема БД состоит из четырех отношений:
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 представляет производителя (maker), номер модели (model) и тип (PC - ПК, Laptop - ПК-блокнот или Printer - принтер). Предполагается, что номера моделей уникальны для всех производителей и типов продуктов. В отношении PC для каждого номера модели, обозначающего ПК, указаны скорость -speed (процессора в мегагерцах), общий объем RAM (в мегабайтах), размер диска -hd (в гигабайтах), скорость считывающего устройства CD (например, 4х) и цена - price. Отношение Laptop аналогично отношению РС за исключением того, что вместо скорости CD содержится размер экрана -screen (в дюймах). В отношении Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный - Laser, струйный - Jet или матричный - Matrix) и цена.
Задание: 7 Найдите номера моделей и цены всех продуктов (любого типа), выпущенных производителем B (латинская буква).
|
Код:
SELECT DISTINCT product.model, pc.price AS price FROM product, pc, laptop, printer WHERE (product.model = pc.model or product.model = laptop.model or product.model = printer.model) and product.maker = 'B'
смысл в том что я не могу сообразить как под одной шапкой (выделено) поместить 2 продукта из разных таблиц (PC, Laptop)... нужна хотя бы идея, остальное... додумаю надеюсь :)
ADD:
Всем спасибо, очобенно Messiah и учебнику Грабера
имхо самый простой результат
Код:
select product.model, pc.price as price from product, pc where product.model = pc.model and product.maker = 'B'
union
select product.model, laptop.price as price from product, laptop where product.model = laptop.model and product.maker = 'B'
union
select product.model, printer.price as price from product, printer where product.model = printer.model and product.maker = 'B'
|