Что означает соединение SQL?
Соединение SQL описывает процесс объединения строк в двух разных таблицах или файлах.
Строки данных объединяются на основе значений в выбранном столбце.
В приведенном выше примере это столбец Элемент.
У I tem Apple указаны и цена, и количество, но в разных таблицах.
Используя соединение SQL, эти значения объединяются в одну строку!
Так зачем мне об этом целая статья?
В большинстве случаев объединить данные не так просто, как в предыдущем примере. Часто у нас есть строки, которые невозможно объединить, потому что в объединяющем столбце для обеих таблиц нет одинакового значения.
Например, что, если в приведенном выше примере не было количества яблок? То, как мы обрабатываем то, что мы делаем с такими строками, зависит от типа выбранного нами соединения SQL.
Существует четыре основных типа соединений: внутреннее соединение, левое соединение, правое соединение и полное соединение. В этой статье я объясню вам, что влечет за собой каждый тип.
Прежде чем вдаваться в подробности, я думаю, было бы неплохо упомянуть, что наш инструмент Объединить электронные таблицы - это простой в использовании инструмент, который легко выполнит все это объединение за вас.
Вы можете поэкспериментировать со своими таблицами, чтобы узнать, как будут выглядеть эти объединения.
Что такое внутреннее соединение?
В результате внутреннего соединения создается таблица со строками, в которых значения в объединяющем столбце находятся в обеих таблицах.
Чтобы лучше понять это, давайте посмотрим на этот пример соединения в столбце элемента:
В обоих стартовых столах много разных предметов, но только Apple и Orange есть в обоих. Таким образом, окончательный результат будет включать только Apple и Orange с их ценой и количеством, объединенными в одну строку.
Что такое левое соединение?
Левое соединение будет включать все строки в левой таблице (первый файл), независимо от того, находятся ли они в правой таблице.
Давайте посмотрим на те же таблицы, что и раньше, также объединенные в столбце элемента:
Как и в случае с внутренним объединением, конечный продукт этого объединения включает Apple и Orange. Однако он также включает все остальные строки из первого файла, даже если они не содержат значений количества (эти ячейки останутся пустыми)!
Что такое правильное соединение?
Правое соединение - полная противоположность левого соединения; он включает все значения в правой таблице (файл два) независимо от того, что находится в первой таблице.
Итак, в том же примере, что и раньше, это будет включать Apple и Orange, а также любые другие строки во втором файле!
Что такое полное присоединение?
Полное соединение объединит все данные из обеих электронных таблиц при объединении строк, которые можно объединить.
Полное присоединение - это определенно лучший способ, если вы не хотите исключать какие-либо данные из окончательного результата.
Как всегда, использование тех же двух таблиц, что и раньше, даст другой результат при использовании полного соединения.
Включены все строки из обеих таблиц, и Apple и Orange будут объединены (поскольку это единственные общие элементы)!
Интересно, неужели все становится сложнее?
Это становится немного сложнее. Я рассмотрю несколько особых случаев, чтобы вы лучше понимали, как работает объединение!
Что делать, если у меня есть дубликаты моих данных?
Если у вас есть дубликаты в одной таблице, они также будут отображаться в вашей объединенной таблице в зависимости от типа соединения.
Если в одном файле есть одна строка с тем же значением в объединяющем столбце, что и несколько строк во втором файле, эти данные в этой единственной строке будут повторяться для каждого экземпляра.
Например, давайте посмотрим на таблицы ниже, которые являются внутренними, объединенными в столбце Элемент. В первом файле две строки оранжевого, а во втором - только одна.
Присоединение к нему будет включать в себя обе уникальные строки из файла один, при этом данные будут повторяться для количества из файла два!
Кстати, соединение LEFT также даст тот же результат
Могу ли я объединить несколько общих столбцов?
Да! Если вы хотите объединить таблицу на основе нескольких столбцов, каждая группа будет классифицироваться как отдельный уникальный объект.
Например, в приведенном ниже примере мы будем Полное объединение по столбцам Товар и Цена.
Строка Apple - единственная, которая была объединена, поскольку она единственная с одинаковыми Товар и Цена в обеих таблицах.
Вместо того, чтобы объединить обе строки оранжевого, они обрабатываются как разные строки, потому что их значения цен различаются.
Итак, все то же самое, что и раньше, но теперь мы ищем одинаковые значения в двух столбцах, а не только в одном.
Что делать, если в моем общем столбце пустое значение?
Каждое пустое значение в столбце, к которому вы присоединяетесь, будет рассматриваться как любое обычное значение. Другими словами, вы можете присоединиться к пустому значению как обычно.
Например, в таблицах выше в обоих файлах в столбце элемента есть пустые значения. Они будут рассматриваться как одна и та же строка и будут объединены! В случае приведенного выше примера все типы соединения приведут к одному и тому же продукту.
NOTE: While a blank value will be treated as any other string, a NULL value is different. NULL values denote nothing and are typically used in code. Each NULL value is treated as a unique entity and can’t be joined on. For more information, check out this article.
Давайте также рассмотрим более подробный пример со всеми этими частными случаями.
Мы будем выполнять соединение слева для столбцов Товар и Цена.
При выполнении левого соединения все строки из левого файла будут в конечном продукте.
Строка Apple, $ 1 находится в обоих файлах, поэтому их ID # и количество будут объединены.
Оранжевый, 2 доллара только в левом файле, поэтому его количество останется пустым.
Наконец, у нас есть пустая / пустая строка в левом файле и две пустые / пустые строки во втором файле. Это означает, что ID # для пустого / пустого файла в первом файле будет повторяться дважды для каждого значения количества во второй таблице!
И полностью пустая строка внизу будет проигнорирована!
Итак ... мы все рассмотрели?
Ага! Мы только что рассмотрели все основы SQL-объединений, так что теперь вы сможете без проблем объединять таблицы.
Не стесняйтесь экспериментировать со своими данными в электронных таблицах в Объединить таблицы, потому что нет ничего лучше, чем попробовать это, чтобы по-настоящему понять это.
Если у вас все еще есть вопросы, не стесняйтесь обращаться по адресу [email protected]!
Хотите узнать больше о том, как объединить таблицы? Ознакомьтесь с нашим полным руководством здесь!