Пересечение и разность стр. 2 |
|||||||||||||||||||||||||||||
|
Пример 5.7.4 Найти корабли из таблицы Outcomes, которые отсутствуют в таблице Ships. Задача легко решается при помощи оператора EXCEPT: Операция разности не является коммутативной, поэтому если переставить местами запросы, то мы получим решение совсем другой задачи: "Найти корабли из таблицы Ships, которые отсутствуют в таблице Outcomes". Эта задача на языке предметной области звучит так: "Найти корабли, которые не принимали участие в сражениях".Заметим, что если какой-либо корабль принимал участие в сражениях несколько раз, то по причине исключения дубликатов он будет присутствовать только один раз в результирующем наборе. У нас есть такой корабль - California, но он присутствует также и в таблице Ships, а потому не выводится рассмотренным выше запросом. Поэтому, чтобы продемонстрировать сказанное, исключим его из результатов второго запроса в операции разности:
Для имеющегося набора данных тот же результат мы получим при выполнении следующего запроса: (2 дубликата для 'California' в таблице Outcomes минус 1 - в Ships)Соответственно, запрос
Рекомендуемые упражнения: 8, 80 |
|||||||||||||||||||||||||||||


