Левый против правого соединения
При работе с SQL объединения - это общее имя, которое время от времени будет появляться. Предложение объединения помогает в сочетании записей из разных таблиц в наборе данных. В результате объединения создается таблица, которую можно использовать как есть, так и с другими. Поэтому желательно понимать эти объединения и различия между ними, чтобы знать конкретное соединение, и следует ли брать право или лево в особых случаях..
Чтобы лучше понять объединения и их различия, важно понимать доступные типы объединений. Обычно существует три типа соединений. Эти объединения включают в себя внутреннее соединение, перекрестное соединение и внешнее соединение. Внутреннее объединение обычно сравнивает таблицы и дает или возвращает результат только в том случае, если найдено совпадение. Основная функция внутреннего объединения - уменьшить размер наборов результатов..
Перекрестные объединения, с другой стороны, сравнивают две таблицы и дают возврат каждой возможной комбинации из строк обеих таблиц. От этого объединения ожидаются многочисленные результаты, и большинство из них могут даже не иметь смысла. Поэтому следует использовать это соединение с осторожностью..
Внешнее объединение берет сравнение таблиц и возвращает данные, когда сопоставление доступно. Как и во внутреннем соединении, внешнее объединение дублирует строки в данной таблице в случае, если видны соответствующие записи. Результаты внешних объединений обычно больше и, следовательно, наборы данных большие, поскольку сам набор не удаляется из набора.
Левое объединение означает сохранение всех записей из первой таблицы независимо от результата и вставку значений NULL, если значения второй таблицы не совпадают. Правильное соединение, с другой стороны, относится к хранению всех записей, поступающих из 2-й таблицы, независимо от того, каков результат, и использованию значений NULL, если результаты не совпадают с результатами в 1-й таблице..
Поэтому левое внешнее соединение сохраняет все строки, которые находятся в «левой» таблице, независимо от того, есть ли строка, соответствующая этому, в «правой» таблице. Поэтому левая таблица относится к таблице, которая стоит первой в совместном заявлении. Он должен появиться слева от ключевого слова «join», встречающегося в таблице. Когда левое внешнее соединение выполнено, все строки слева должны быть возвращены. Несоответствующие столбцы в таблице будут заполнены пустыми значениями, если совпадений нет.
Важно отметить, что при работе с этими двумя объединениями все строки слева от таблицы отображаются в таблице в левом внешнем соединении. Результаты отображаются сами по себе независимо от того, присутствуют ли соответствующие столбцы в правой таблице. В правом внешнем соединении отображаются все строки справа, и это независимо от того, есть ли какие-либо совпадающие столбцы в левой части таблицы.
Выбор, выбрать ли левое внешнее соединение или правое внешнее соединение, не имеет значения, так как отображаются те же результаты. Функциональные возможности, которые предоставляет правое внешнее объединение, представляют собой те же функции, что и левое внешнее объединение. Просто переключая порядок, в котором таблицы появляются в операторе SQL, можно ожидать аналогичных результатов, независимо от используемого объединения.
Резюме
Объединения делятся на три основные группы: внутреннее, перекрестное и внешнее.
В левом внешнем соединении отображаются все строки слева от таблицы.
Правое объединение отображает все строки справа от таблицы
Изменение последовательности SQL может исключить использование как правого, так и левого внешних объединений, и вместо этого использовать только одно.