Главная » Microsoft SQL Server, Базы данных » Перекрестные (неограниченные) объединения

0

Перекрестные объединения, также называемые неограниченными, являются реализацией реляционного произведения двух исходных таблиц. При отсутствии условия объединения результирующий набор данных будет содержать все возможные комбинации строк двух источников. Каждая строка исходного набора 1 будет сопоставляться с каждой строкой исходного набора 2. Например, если первый набор данных содержит пять строк, а второй — четыре строки, то результирующий набор данных будет содержать двадцать строк. Такой тип результирующего множества называют декартовым произведением.

Используя в качестве примера таблицы One и Two, перекрестное объединение двух таблиц, созданное в Management Studio при отсутствии условия объединения, будет выглядеть так, как показано на рис. 9.10.

Рис. 9.10. Перекрестное объединение представляет собой две таблицы без условия объединения

В коде этот тип объединения определяется ключевыми словами cross join при отсутствии условия ON.

SELECT Thingl, Thing2 FROM dbo.One

CROSS JOIN dbo.Two

Результатом такого объединения без ограничений будут все строки таблицы One, связанные с каждой строкой таблицы Two.

Thingl          Thing2

Old Thing   Plane

New Thing Plane

Red Thing  Plane

Blue Thing Plane

Old Thing   Train

New Thing Train

Red Thing  Train

Blue Thing Train

Old Thing  Car

New Thing Car

Red Thing  Car

Blue Thing Car

Old Thing  Cycle

New Thing Cycle

Red Thing  Cycle

Blue Thing Cycle

Большинство перекрестных объединений являются результатом того, что кто-то забыл определить отношение в графическом интерфейсе. В то же время эти объединения полезны для наполнения базы данных учебными данными или для создания пустых строк с целью заполнения некоторой процедурой.

Понимание того, как перекрестное объединение умножает данные, также полезно при изучении реляционного деления — операции, обратной произведению. Реляционное деление требует использования подзапросов (рис. 9.12); оно будет описано ниже в этой главе.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии