Подтвердить что ты не робот

В чем разница между JOIN и UNION?

В чем разница между JOIN и UNION? Могу ли я иметь пример?

4b9b3361

Ответ 1

UNION помещает строки из запросов друг за другом, а JOIN делает декартово произведение и подмножества - это совершенно разные операции. Тривиальный пример UNION:

mysql> SELECT 23 AS bah
    -> UNION
    -> SELECT 45 AS bah;
+-----+
| bah |
+-----+
|  23 | 
|  45 | 
+-----+
2 rows in set (0.00 sec)

аналогичный тривиальный пример JOIN:

mysql> SELECT * FROM 
    -> (SELECT 23 AS bah) AS foo 
    -> JOIN 
    -> (SELECT 45 AS bah) AS bar
    -> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
|  23 |  45 | 
+-----+-----+
1 row in set (0.01 sec)

Ответ 2

UNION объединяет результаты двух или более запросов в единый результирующий набор, включающий все строки, принадлежащие всем запросов в союзе.

Используя JOINs, вы можете извлекать данные из двух или более таблиц на основе логических отношений между таблицами. Соединения указывают, как SQL должен использовать данные из одной таблицы для выбора строк в другой таблице.

Операция UNION отличается от использования JOINs, которые объединяют столбцы из двух таблиц.

UNION Пример:

SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]

Вывод:

Column1    Column2
-------------------
1          2
3          4

ПРИСОЕДИНЯЙТЕСЬ Пример:

SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId

Это выведет все строки из обеих таблиц, для которых выполняется условие a.Id = b.AFKId.

Ответ 3

JOIN:

Соединение используется для отображения столбцов с тем же или разные имена из разных таблиц. Выведенный вывод будут отображаться все столбцы отдельно. Это столбцы будут выровнены рядом друг с другом.

UNION:

Оператор набора UNION используется для объединения данных из двух таблицы с колонками с одинаковым типом данных. Когда выполняется UNION, данные из обеих таблиц будут собранные в одном столбце с одинаковым типом данных.

Например:

Смотрите две таблицы, показанные ниже:

Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG

Теперь для выполнения типа 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 означает, что у вас есть таблицы или результаты с помощью то же количество и тип столбцов, и вы добавляете это в таблиц/результатов. Посмотрите на этот пример:

Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4

SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007

articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4

Ответ 4

Вы можете увидеть те же схематические объяснения для обоих, но они полностью запутывают.

Для UNION:

Введите описание изображения здесь

Для JOIN:

Введите описание изображения здесь

Ответ 5

Это совершенно разные вещи.

A join позволяет связать похожие данные в разных таблицах.

Объединение возвращает результаты двух разных запросов в виде одного набора записей.

Ответ 6

Союз делает два запроса похожими на один. Соединения предназначены для проверки двух или более таблиц в одном заявлении запроса

Ответ 7

Соединения и союзы могут использоваться для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.

В простых терминах объединяет данные в новые столбцы. Если две таблицы объединены вместе, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом вторых таблиц в той же строке.

Союзы объединяют данные в новые строки. Если две таблицы объединены вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы в другом наборе, Строки имеют одинаковый результат.

Вот визуальное изображение соединения. Столбцы A и Bs объединены в один результат.

введите описание изображения здесь

Каждая строка в результате содержит столбцы из BOTH таблицы A и B. Строки создаются, когда столбцы из одной таблицы соответствуют столбцам из другого. Это совпадение называется условием объединения.

Это делает объединения действительно отличными для поиска значений и их включения в результаты. Обычно это результат денормализации (реверсирование нормализации) и предполагает использование внешнего ключа в одной таблице для поиска значений столбца с использованием первичного ключа в другом.

Теперь сравните приведенное выше изображение с изображением объединения. В объединении каждая строка в результате получается из одной таблицы ИЛИ другой. В объединении столбцы arent объединены для создания результатов, строки объединяются.

введите описание изображения здесь

Оба объединения и объединения могут использоваться для объединения данных из одной или нескольких таблиц в один результат. Они оба обходятся по-разному. В то время как объединение используется для объединения столбцов из разных таблиц, объединение используется для объединения строк.

Источник

Ответ 8

Соединения и объединения могут использоваться для объединения данных из одной или нескольких таблиц. Разница заключается в том, как данные объединяются.

В простых терминах объединения объединяют данные в новые столбцы. Если две таблицы объединены вместе, то данные из первой таблицы отображаются в одном наборе столбцов рядом со столбцом вторых таблиц в той же строке.

Союзы объединяют данные в новые строки. Если две таблицы объединены вместе, то данные из первой таблицы находятся в одном наборе строк, а данные из второй таблицы в другом наборе. Строки имеют одинаковый результат.

Ответ 9

Помните, что объединение объединит результаты (SQL Server, чтобы убедиться) (функция или ошибка?)

select 1 as id, 3 as value
union
select 1 as id, 3 as value

идентификатор, значение

1,3

select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id

идентификатор, значение, идентификатор, значение

1,3,1,3

Ответ 10

1. Предложение SQL Joins используется для объединения записей из двух или более таблиц в базе данных. JOIN - это средство для объединения полей из двух таблиц с использованием значений, общих для каждого.

2. Оператор SQL UNION объединяет результат двух или более операторов SELECT. Каждый оператор SELECT в UNION должен иметь одинаковое количество столбцов. Столбцы также должны иметь похожие типы данных. Кроме того, столбцы в каждой инструкции SELECT должны быть в том же порядке.

например: таблица 1 заказчики/таблица 2 заказы

внутреннее соединение:

SELECT ID, NAME, AMOUNT, DATE

ОТ КЛИЕНТОВ

ВХОДНЫЕ ЗАКАЗЫ ВНУТРЕННЕГО СОБЫТИЯ

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

объединение

SELECT ID, NAME, AMOUNT, DATE

ОТ КЛИЕНТОВ

ВЗАИМОДЕЙСТВУЮЩИЕ ЗАКАЗЫ

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

UNION

ИДЕНТИФИКАТОР SELECT, NAME, AMOUNT, DATE ОТ КЛИЕНТОВ

ПРАВОЗАЩИТНЫЕ ЗАКАЗЫ

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Ответ 11

Оператор UNION предназначен только для объединения двух или более операторов SELECT.

В то время как JOIN предназначен для выбора строк из каждой таблицы, либо с помощью внутреннего, внешнего, левого или правого метода.

Обратитесь к здесь и здесь. Более хорошее объяснение с примерами.

Ответ 12

Любой современный DBS, например MariaDB, реализует команду UNION JOIN. Это команда SQL 3, но она не известна или не используется. Узнайте больше о UNION JOIN.

Ответ 13

В реферате они схожи, поскольку две таблицы или результирующие наборы объединяются, но UNION действительно предназначен для объединения наборов результатов с ТОЛЬКО КОЛИЧЕСТВО КОЛОНКИ с КОЛОНКАМИ, ИМЕЮЩИМИ ТАЙПИРОВАННЫЕ ТИПЫ ДАННЫХ. СТРУКТУРА такая же, добавляются только новые строки.

В соединениях вы можете комбинировать таблицы/результирующие наборы с любой возможной структурой, включая декартовое соединение, в котором нет общих/похожих столбцов.