loading..
Русский    English
19:17
листать

Объединение стр. 2

Рассмотрим следующую задачу.

Найти все имеющиеся единицы продукции производителя 'B'. Вывести номер модели и тип.

В базе имеется один ноутбук и три ПК от производителя B, при этом все три ПК - одной модели.

Если мы будем использовать объединение с помощью UNION ALL, то мы получим все эти изделия.

Консоль
Выполнить
  1. SELECT p.model, p.type FROM pc JOIN Product p ON PC.model=p.model WHERE maker='B'
  2. UNION ALL
  3. SELECT p.model, p.type FROM printer pr JOIN Product p ON pr.model=p.model WHERE maker='B'
  4. UNION ALL
  5. SELECT p.model, p.type FROM laptop lp JOIN Product p ON lp.model=p.model WHERE maker='B';

model    type
1121    PC
1121    PC
1121    PC
1750    Laptop

А если - UNION, то из результата будут исключены дубликаты строк:

Консоль
Выполнить
  1. SELECT p.model, p.type FROM pc JOIN Product p ON PC.model=p.model WHERE maker='B'
  2. UNION
  3. SELECT p.model, p.type FROM printer pr JOIN Product p ON pr.model=p.model WHERE maker='B'
  4. UNION
  5. SELECT p.model, p.type FROM laptop lp JOIN Product p ON lp.model=p.model WHERE maker='B';

model    type
1121    PC
1750    Laptop

Решение на основе UNION соответствует несколько иной задаче, которую можно было бы сформулировать следующим образом.

Выяснить, какие модели производителя 'B' имеются в наличии. Вывести номер модели и тип.


Страницы: 1 2
Тэги:
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 INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
несколько дней назад
обмен с alipay
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.