loading..
Русский    English
09:03
листать

Упражнение 2

Найдите производителей принтеров. Вывести: maker.

Здесь впервые встречается ошибка, характерная для нескольких задач (например, 20, 27, 28). Причина в невнимательном изучении схемы данных. «Неправильное» решение:

Консоль
Выполнить
  1. SELECT DISTINCT maker
  2. FROM Product
  3. WHERE model IN (SELECT model
  4. FROM Printer
  5. );

Таким образом, для каждой строки из таблицы Product проверяется, есть ли такая модель в таблице Printer. Связь между этими таблицами (один-ко-многим) допускает наличие модели в таблице Product, которая отсутствовала бы в таблице Printer.

Пусть, например, фирма занимается ремонтом принтеров. При этом в таблице Product содержится информация обо всех известных моделях принтеров, а в таблице Printer только о тех, которые обслуживает фирма. Например, если фирма не занимается ремонтом принтеров Sharp, то модели Sharp будут находиться в таблице Product, а в таблице Printer - нет.

В результате мы можем потерять производителя принтеров, если его моделей нет в наличии (в таблице Printer). Как уже говорилось при обсуждении схемы данных, тип продукции в таблице Product, задается атрибутом type, который и упускается из виду.

Если вам еще не ясно, как решить эту задачу, загляните в главу 4 «Подсказки и решения».

Внимание:

Если к данной задаче имеется пояснение или приведен вариант правильного решения, в конце анализа задачи будет ставиться ссылка на соответствующую страницу этой главы - ПиР.

Решить задачу на SQL-EX.RU

Bookmark and Share
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX Больше тэгов
Учебник обновлялся
вчера
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100