Соединения

Соединения

Соединение используется в операторах SELECT для генерации ненормализованных наборов, содержащих столбцы из нескольких таблиц, которые хранят связанные данные. Множества столбцов, выбранных из каждой таблицы, называются потоками. Процесс соединения объединяет выбранные столбцы в единый выходной набор данных. Простейшим случаем является соединение двух таблиц, которые связаны соответствием элементов ключа, встречающихся в обеих таблицах.

Для создания связи ключевые столбцы выбираются на основании того, что они реализуют недвусмысленное отношение - т. е. ключ в левой таблице соединения будет отыскивать только те строки из правой таблицы, которые соответствуют отношению, и он будет отыскивать все такие строки. Обычно связь осуществляется между уникальным ключом левой таблицы (первичный или любой другой уникальный ключ) и формальным или подразумеваемым внешним ключом правой таблицы.

Тем не менее условия соединения не ограничены столбцами первичного и внешнего ключей; сервер допускает в выходном наборе данных дубликаты строк. Дублированные строки могут стать причиной нежелательного результата. По этому вопросу обратитесь к замечаниям в разд. "Темы оптимизации".