Любая современная DBS, как MariaDB , реализует команду UNION JOIN. Это команда SQL & nbsp; 3 , но она не известна и не используется. Узнайте больше на UNION JOIN .
Остон
Ответы:
301
UNIONставит строки из запросов друг за другом, в то время как JOINделает декартово произведение и подставляет его - совершенно разные операции. Тривиальный пример UNION:
Подскажите, пожалуйста, что это такое UNION-JOINи как я могу выполнить это в стандартном SQL? Мария БД имеет команду union join, но другие базы данных нет. Спасибо.
Эрран Морад
73
Объединения и объединения можно использовать для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.
Проще говоря, объединения объединяют данные в новые столбцы . Если две таблицы объединены, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом второй таблицы в той же строке.
Профсоюзы объединяют данные в новые строки. Если две таблицы «объединены» вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы - в другом наборе. Строки в том же результате.
Вот визуальное изображение объединения. Столбцы таблицы A и B объединены в один результат.
Каждая строка в результате содержит столбцы из ОБА таблицы A и B. Строки создаются, когда столбцы из одной таблицы соответствуют столбцам из другой. Это совпадение называется условием соединения.
Это делает объединения действительно хорошими для поиска значений и включения их в результаты. Обычно это является результатом денормализации (обратной нормализации) и включает использование внешнего ключа в одной таблице для поиска значений столбцов с использованием первичного ключа в другой.
Теперь сравните вышеприведенное изображение с изображением союза. В объединении каждая строка в результате получается из одной таблицы ИЛИ из другой. В объединении столбцы не объединяются для создания результатов, строки объединяются.
И объединения, и объединения могут использоваться для объединения данных из одной или нескольких таблиц в один результат. Они оба идут об этом разными путями. В то время как объединение используется для объединения столбцов из разных таблиц, объединение используется для объединения строк.
Это потрясающий визуальный пример. Я был почти уверен, что понял после других ответов, но это полностью прояснилось.
seadoggie01
Для примера объединения, с технической точки зрения, не должно ли быть 10 столбцов для результата?
Бхарат Рам
60
UNION объединяет результаты двух или более запросов в один набор результатов, который включает все строки, которые принадлежат всем запросам в объединении.
Используя JOIN , вы можете извлекать данные из двух или более таблиц на основе логических связей между таблицами. Объединения показывают, как SQL должен использовать данные из одной таблицы для выбора строк в другой таблице.
Операция UNION отличается от использования JOIN, которые объединяют столбцы из двух таблиц.
Эти изображения подразумевают, что FULL OUTER JOINэто то же самое UNION, что и есть различия
icc97
1
Этот ответ указывает на то, что эти образы сбивают с толку (что это за IMO), но затем не объясняют почему и не дают каких-либо разъяснений к исходному вопросу.
Джош Д.
1
Каждое изображение с диаграммами прекрасно объясняет ситуацию. Нет единого изображения, которое могло бы объединить все диаграммы. Это будет более запутанным.
Java Main
41
ПРИСОЕДИНИТЬСЯ:
Объединение используется для отображения столбцов с одинаковыми или разными именами из разных таблиц. Отображаемый вывод будет иметь все столбцы, показанные по отдельности. То есть столбцы будут выровнены рядом друг с другом.
UNION:
Оператор множеств UNION используется для объединения данных из двух таблиц, которые имеют столбцы с одинаковым типом данных. Когда выполняется UNION, данные из обеих таблиц будут собраны в один столбец с одинаковым типом данных.
Теперь для выполнения типа JOIN запрос показан ниже.
SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON(t1.manufacturer_id =
t2.manufacturer_id);
articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG
Это соединение.
UNION означает, что у вас есть таблицы или наборы результатов с одинаковым количеством и типом столбцов, и вы добавляете их в таблицы / наборы результатов вместе. Посмотрите на этот пример:
Объединения и объединения можно использовать для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.
Проще говоря, объединения объединяют данные в новые столбцы. Если две таблицы объединены, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом второй таблицы в той же строке.
Профсоюзы объединяют данные в новые строки. Если две таблицы объединены вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы - в другом. Строки в том же результате.
1. Предложение SQL Joins используется для объединения записей из двух или более таблиц в базе данных. JOIN - это средство для объединения полей из двух таблиц с использованием значений, общих для каждой.
2. Оператор SQL UNION объединяет результат двух или более операторов SELECT. Каждый оператор SELECT в UNION должен иметь одинаковое количество столбцов. Столбцы также должны иметь похожие типы данных. Кроме того, столбцы в каждом операторе SELECT должны быть в том же порядке.
В общих чертах они похожи в том, что объединяются две таблицы или наборы результатов, но UNION действительно предназначен для объединения наборов результатов с ОДНИМ КОЛИЧЕСТВОМ КОЛОНН и КОЛОННАМИ, ИМЕЮЩИМИ ПОХОЖИЕ ТИПЫ ДАННЫХ. СТРУКТУРА та же самая, добавляются только новые строки.
В объединениях вы можете комбинировать таблицы / наборы результатов с любой возможной структурой, включая декартово объединение, где НЕТ общих / похожих столбцов.
Операция объединения - это объединенный результат вертикального агрегата строк, операция объединения - это комбинированный результат горизонтального агрегата столбцов.
Возникает вопрос - объединение упоминается в терминах «соединение», а объединение упоминается в терминах необъяснимых «объединений». Во всяком случае, что, по вашему мнению, вы бы добавили помимо других 10-летних ответов с высокими голосами, которые делают это "полезным"? (Риторика.) См. Текст при наведении курсора на стрелку.
Ответы:
UNION
ставит строки из запросов друг за другом, в то время какJOIN
делает декартово произведение и подставляет его - совершенно разные операции. Тривиальный примерUNION
:похожий тривиальный пример
JOIN
:источник
UNION-JOIN
и как я могу выполнить это в стандартном SQL? Мария БД имеет командуunion join
, но другие базы данных нет. Спасибо.Объединения и объединения можно использовать для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.
Проще говоря, объединения объединяют данные в новые столбцы . Если две таблицы объединены, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом второй таблицы в той же строке.
Профсоюзы объединяют данные в новые строки. Если две таблицы «объединены» вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы - в другом наборе. Строки в том же результате.
Вот визуальное изображение объединения. Столбцы таблицы A и B объединены в один результат.
Каждая строка в результате содержит столбцы из ОБА таблицы A и B. Строки создаются, когда столбцы из одной таблицы соответствуют столбцам из другой. Это совпадение называется условием соединения.
Это делает объединения действительно хорошими для поиска значений и включения их в результаты. Обычно это является результатом денормализации (обратной нормализации) и включает использование внешнего ключа в одной таблице для поиска значений столбцов с использованием первичного ключа в другой.
Теперь сравните вышеприведенное изображение с изображением союза. В объединении каждая строка в результате получается из одной таблицы ИЛИ из другой. В объединении столбцы не объединяются для создания результатов, строки объединяются.
И объединения, и объединения могут использоваться для объединения данных из одной или нескольких таблиц в один результат. Они оба идут об этом разными путями. В то время как объединение используется для объединения столбцов из разных таблиц, объединение используется для объединения строк.
Источник
источник
UNION объединяет результаты двух или более запросов в один набор результатов, который включает все строки, которые принадлежат всем запросам в объединении.
Используя JOIN , вы можете извлекать данные из двух или более таблиц на основе логических связей между таблицами. Объединения показывают, как SQL должен использовать данные из одной таблицы для выбора строк в другой таблице.
Операция UNION отличается от использования JOIN, которые объединяют столбцы из двух таблиц.
UNION Пример:
Вывод:
ПРИСОЕДИНИТЬСЯ Пример:
Это выведет все строки из обеих таблиц, для которых выполняется условие
a.Id = b.AFKId
.источник
Вы можете увидеть одни и те же схематические объяснения для обоих, но они полностью сбивают с толку.
Для СОЮЗА:
ДЛЯ ПРИСОЕДИНЕНИЯ:
источник
FULL OUTER JOIN
это то же самоеUNION
, что и есть различияПРИСОЕДИНИТЬСЯ:
Объединение используется для отображения столбцов с одинаковыми или разными именами из разных таблиц. Отображаемый вывод будет иметь все столбцы, показанные по отдельности. То есть столбцы будут выровнены рядом друг с другом.
UNION:
Оператор множеств UNION используется для объединения данных из двух таблиц, которые имеют столбцы с одинаковым типом данных. Когда выполняется UNION, данные из обеих таблиц будут собраны в один столбец с одинаковым типом данных.
Например:
Смотрите две таблицы, показанные ниже:
Теперь для выполнения типа JOIN запрос показан ниже.
Это соединение.
UNION означает, что у вас есть таблицы или наборы результатов с одинаковым количеством и типом столбцов, и вы добавляете их в таблицы / наборы результатов вместе. Посмотрите на этот пример:
источник
Это совершенно разные вещи.
Присоединиться позволяет связать аналогичные данные в разных таблицах.
Объединение возвращает результаты двух разных запросов в виде одного набора записей.
источник
Union делает два запроса похожими на один. Соединения предназначены для изучения двух или более таблиц в одном операторе запроса.
источник
Объединения и объединения можно использовать для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.
Проще говоря, объединения объединяют данные в новые столбцы. Если две таблицы объединены, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом второй таблицы в той же строке.
Профсоюзы объединяют данные в новые строки. Если две таблицы объединены вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы - в другом. Строки в том же результате.
источник
Помните, что объединение объединит результаты ( SQL Server обязательно) (функция или ошибка?)
Идентификатор, значение
1,3
Идентификатор, значение, идентификатор, значение
1,3,1,3
источник
UNION
vsUNION ALL
stackoverflow.com/questions/49925/…1. Предложение SQL Joins используется для объединения записей из двух или более таблиц в базе данных. JOIN - это средство для объединения полей из двух таблиц с использованием значений, общих для каждой.
2. Оператор SQL UNION объединяет результат двух или более операторов SELECT. Каждый оператор SELECT в UNION должен иметь одинаковое количество столбцов. Столбцы также должны иметь похожие типы данных. Кроме того, столбцы в каждом операторе SELECT должны быть в том же порядке.
например: таблица 1 клиентов / таблица 2 заказов
внутреннее соединение:
ВЫБЕРИТЕ ID, ИМЯ, СУММУ, ДАТУ
ОТ КЛИЕНТОВ
ВНУТРЕННИЕ ЗАКАЗЫ СОЕДИНЕНИЯ
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
союз:
ВЫБЕРИТЕ ID, ИМЯ, СУММУ, ДАТУ
ОТ КЛИЕНТОВ
СЛЕДУЕТ ЗАКАЗАТЬ
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNION
ВЫБЕРИТЕ ID, ИМЯ, СУММУ, ДАТУ ОТ КЛИЕНТОВ
ПРАВИЛЬНОЕ СОЕДИНЕНИЕ
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
источник
Ussing UNION
UNION объединяет результаты двух или более запросов в один набор результатов, который включает все строки, принадлежащие всем запросам в объединении.
Ussing JOINs
СОЕДИНЕНИЯ, вы можете извлечь данные из двух или более таблиц на основе логических отношений между таблицами.
источник
В общих чертах они похожи в том, что объединяются две таблицы или наборы результатов, но UNION действительно предназначен для объединения наборов результатов с ОДНИМ КОЛИЧЕСТВОМ КОЛОНН и КОЛОННАМИ, ИМЕЮЩИМИ ПОХОЖИЕ ТИПЫ ДАННЫХ. СТРУКТУРА та же самая, добавляются только новые строки.
В объединениях вы можете комбинировать таблицы / наборы результатов с любой возможной структурой, включая декартово объединение, где НЕТ общих / похожих столбцов.
источник
Оператор UNION предназначен только для объединения двух или более операторов SELECT.
В то время как JOIN предназначен для выбора строк из каждой таблицы, внутренним, внешним, левым или правым методом.
Обратитесь сюда и сюда . Есть лучшее объяснение с примерами.
источник
Операция объединения - это объединенный результат вертикального агрегата строк, операция объединения - это комбинированный результат горизонтального агрегата столбцов.
источник
Мне нравится думать об общей разнице как о:
источник