loading..
Русский    English
01:23
листать

Упражнение 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. В результате мы можем потерять производителя принтеров, если его моделей нет в наличии (в таблице Printer). Как уже говорилось при обсуждении схемы данных, тип продукции в таблице Product, задается атрибутом type, который и упускается из виду.

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

Внимание:

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

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

Тэги:
ALL AVG battles CASE CAST CHAR CHARINDEX classes COALESCE Convert COUNT CTE DATEDIFF DATEPART DATETIME DELETE DISTINCT EXCEPT EXISTS EXTRACT FROM FULL JOIN GROUP BY Guadalcanal HAVING IN INNER JOIN insert INTERSECT ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX MIN MySQL NOT IN NULL ORDER BY Outcome outcomes OVER PARTITION BY pc PIVOT PostgreSQL printer product Больше тэгов
Учебник обновлялся
вчера
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100