Базы данных - модели, разработка, реализация


         

Внешние объединения - часть 5


Запрос на объединение может объединять любое число исходных запросов.

Так, к предыдущему запросу можно добавить еще читателей, которые держат на руках книгу "Замок":

  • UNION
  • SELECT READER. NAME_READER
  • FROM READER. EXEMPLARE.BOOKS
  • WHERE EXEMPLARE.NUM_READER= READER.NUM_READER AND
  • EXEMPLRE.ISBN - BOOKS.ISBN AND
  • BOOKS.TITLE - "Замок"
  • В том случае, когда вам необходимо сохранить все строки из исходных отношений, необходимо использовать ключевое слово ALL в операции объединения. В случае сохранения дубликатов кортежей схема выполнения запроса на объединение будет выглядеть следующим образом:

  • SELECT - запрос
  • UNION ALL
  • SELECT - запрос
  • UNION ALL
  • SELECT - запрос
  • Однако тот же результат можно получить простым изменением фразы WHERE первой части исходного запроса, соединив локальные условия логической операцией ИЛИ и исключив дубликаты кортежей.

  • SELECT DISTINCT READER.NAME_READER
  • FROM READER. EXEMPLARE.BOOKS
  • 94

  • WHERE EXEMPLARE.NUM_READER= READER.NUM_READER AND
  • EXEMPLRE.ISBN = BOOKS.ISBN AND
  • BOOKS.TITLE = "Идиот" OR
  • BOOKS.TITLE = "Преступление и наказание" OR
  • BOOKS.TITLE = "Замок"
  • Ни один из исходных запросов в операции UNION не должен содержать предложения упорядочения результата ORDER BY, однако результат объединения может быть упорядочен, для этого предложение ORDER BY с указанием списка столбцов упорядочения записывается после текста последнего исходного SELECT-запроса.

    95

    89 :: 90 :: 91 :: 92 :: 93 :: 94 :: 95 :: Содержание




    Содержание  Назад  Вперед