Qualquer DBS moderno, como o MariaDB , implementa um comando UNION JOIN. Este é um comando SQL & nbsp; 3 , mas não é bem conhecido ou usado. Aprenda mais sobre UNION JOIN .
Auston 3/11
Respostas:
301
UNIONcoloca linhas de consultas uma após a outra, enquanto cria JOINum produto cartesiano e o subconta - operações completamente diferentes. Exemplo trivial de UNION:
Você pode me dizer o que é um UNION-JOINe como posso realizá-lo no SQL padrão? Maria DB tem um comando union join, mas outros bancos de dados não. Obrigado.
Erran Morad
73
Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas. A diferença está na forma como os dados são combinados.
Em termos simples, as junções combinam dados em novas colunas . Se duas tabelas forem unidas, os dados da primeira tabela serão mostrados em um conjunto de colunas ao lado da coluna da segunda tabela na mesma linha.
Os sindicatos combinam dados em novas linhas. Se duas tabelas forem "unidas" juntas, os dados da primeira tabela estarão em um conjunto de linhas e os dados da segunda tabela em outro conjunto. As linhas estão no mesmo resultado.
Aqui está uma representação visual de uma junção. As colunas da tabela A e B são combinadas em um único resultado.
Cada linha no resultado contém colunas das AMBAS tabelas A e B. As linhas são criadas quando as colunas de uma tabela correspondem às colunas de outra. Essa correspondência é chamada de condição de junção.
Isso torna as junções realmente ótimas para procurar valores e incluí-los nos resultados. Geralmente, isso é resultado da desnormalização (reversão da normalização) e envolve o uso da chave estrangeira em uma tabela para procurar valores de coluna usando a chave primária em outra.
Agora compare a representação acima com a de uma união. Em uma união, cada linha do resultado é de uma tabela OU da outra. Em uma união, as colunas não são combinadas para criar resultados, as linhas são combinadas.
Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas em um único resultado. Ambos fazem isso de maneiras diferentes. Enquanto uma junção é usada para combinar colunas de diferentes tabelas, a união é usada para combinar linhas.
Este é um exemplo visual incrível. Eu tinha certeza que entendi depois das outras respostas, mas isso esclareceu completamente.
seadoggie01
Para o exemplo de junção, tecnicamente falando, não deveria haver 10 colunas para o resultado?
Bharath Ram
60
UNION combina os resultados de duas ou mais consultas em um único conjunto de resultados que inclui todas as linhas que pertencem a todas as consultas na união.
Usando JOINs , você pode recuperar dados de duas ou mais tabelas com base em relacionamentos lógicos entre as tabelas. Associações indicam como o SQL deve usar dados de uma tabela para selecionar as linhas em outra tabela.
A operação UNION é diferente de usar JOINs que combinam colunas de duas tabelas.
Estas imagens implica que FULL OUTER JOINé o mesmo que UNION, que têm diferenças
icc97
1
Essa resposta indica que essas imagens são confusas (qual IMO são), mas depois não explica o porquê nem oferece esclarecimentos sobre a pergunta original.
22417 Josh D.
1
Cada imagem com diagramas explica perfeitamente a situação. Não existe uma imagem única que possa mesclar todos os diagramas. Isso será mais confuso.
Java Main
41
JUNTE-SE:
Uma junção é usada para exibir colunas com nomes iguais ou diferentes de tabelas diferentes. A saída exibida terá todas as colunas mostradas individualmente. Ou seja, as colunas serão alinhadas uma ao lado da outra.
UNIÃO:
O operador de conjunto UNION é usado para combinar dados de duas tabelas que possuem colunas com o mesmo tipo de dados. Quando uma UNION é executada, os dados de ambas as tabelas serão coletados em uma única coluna com o mesmo tipo de dados.
Agora, para executar um tipo JOIN, a consulta é mostrada abaixo.
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
Isso é uma junção.
UNION significa que você precisa criar tabelas ou conjunto de resultados com a mesma quantidade e tipo de colunas e adicioná-lo a tabelas / conjuntos de resultados juntos. Veja este exemplo:
Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas. A diferença está na forma como os dados são combinados.
Em termos simples, as junções combinam dados em novas colunas. Se duas tabelas forem unidas, os dados da primeira tabela serão mostrados em um conjunto de colunas ao lado da coluna da segunda tabela na mesma linha.
Os sindicatos combinam dados em novas linhas. Se duas tabelas forem "unidas" juntas, os dados da primeira tabela estarão em um conjunto de linhas e os dados da segunda tabela em outro conjunto. As linhas estão no mesmo resultado.
1. A cláusula SQL Joins é usada para combinar registros de duas ou mais tabelas em um banco de dados. Um JOIN é um meio de combinar campos de duas tabelas usando valores comuns a cada um.
2. O operador SQL UNION combina o resultado de duas ou mais instruções SELECT. Cada instrução SELECT dentro do UNION deve ter o mesmo número de colunas. As colunas também devem ter tipos de dados semelhantes. Além disso, as colunas em cada instrução SELECT devem estar na mesma ordem.
UNION é combina os resultados de duas ou mais consultas em um único conjunto de resultados que inclui todas as linhas que pertencem a todas as consultas na união.
Exemplo UNION:
SELECIONE 121 AS [Coluna1], 221 AS [Coluna2]
UNIÃO
SELECIONE 321 AS [Coluna1], 422 AS [Coluna2]
Em resumo, eles são semelhantes, pois duas tabelas ou conjuntos de resultados estão sendo combinados, mas UNION é realmente para combinar conjuntos de resultados com o MESMO NÚMERO DE COLUNAS com as COLUNAS QUE TÊM TIPOS DE DADOS SIMILARES. A estrutura é a mesma, apenas novas linhas estão sendo adicionadas.
Nas junções, você pode combinar tabelas / conjuntos de resultados com qualquer estrutura possível, incluindo uma junção cartesiana onde NÃO há colunas compartilhadas / similares.
Isso levanta a questão - a junção é mencionada em termos de "junção" e a união é mencionada em termos de "combinações" inexplicáveis. Enfim, o que você acha que estaria adicionando além de outras respostas de 10 anos altamente votadas que tornam isso "útil"? (Retórica.) Veja o texto do mouse sobre a seta de votação.
Respostas:
UNION
coloca linhas de consultas uma após a outra, enquanto criaJOIN
um produto cartesiano e o subconta - operações completamente diferentes. Exemplo trivial deUNION
:exemplo trivial semelhante de
JOIN
:fonte
UNION-JOIN
e como posso realizá-lo no SQL padrão? Maria DB tem um comandounion join
, mas outros bancos de dados não. Obrigado.Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas. A diferença está na forma como os dados são combinados.
Em termos simples, as junções combinam dados em novas colunas . Se duas tabelas forem unidas, os dados da primeira tabela serão mostrados em um conjunto de colunas ao lado da coluna da segunda tabela na mesma linha.
Os sindicatos combinam dados em novas linhas. Se duas tabelas forem "unidas" juntas, os dados da primeira tabela estarão em um conjunto de linhas e os dados da segunda tabela em outro conjunto. As linhas estão no mesmo resultado.
Aqui está uma representação visual de uma junção. As colunas da tabela A e B são combinadas em um único resultado.
Cada linha no resultado contém colunas das AMBAS tabelas A e B. As linhas são criadas quando as colunas de uma tabela correspondem às colunas de outra. Essa correspondência é chamada de condição de junção.
Isso torna as junções realmente ótimas para procurar valores e incluí-los nos resultados. Geralmente, isso é resultado da desnormalização (reversão da normalização) e envolve o uso da chave estrangeira em uma tabela para procurar valores de coluna usando a chave primária em outra.
Agora compare a representação acima com a de uma união. Em uma união, cada linha do resultado é de uma tabela OU da outra. Em uma união, as colunas não são combinadas para criar resultados, as linhas são combinadas.
Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas em um único resultado. Ambos fazem isso de maneiras diferentes. Enquanto uma junção é usada para combinar colunas de diferentes tabelas, a união é usada para combinar linhas.
Fonte
fonte
UNION combina os resultados de duas ou mais consultas em um único conjunto de resultados que inclui todas as linhas que pertencem a todas as consultas na união.
Usando JOINs , você pode recuperar dados de duas ou mais tabelas com base em relacionamentos lógicos entre as tabelas. Associações indicam como o SQL deve usar dados de uma tabela para selecionar as linhas em outra tabela.
A operação UNION é diferente de usar JOINs que combinam colunas de duas tabelas.
Exemplo UNION:
Resultado:
Exemplo de JOIN:
Isso produzirá todas as linhas de ambas as tabelas para as quais a condição
a.Id = b.AFKId
é verdadeira.fonte
Você pode ver as mesmas explicações esquemáticas para ambas, mas são totalmente confusas.
Pela UNIÃO:
Para JOIN:
fonte
FULL OUTER JOIN
é o mesmo queUNION
, que têm diferençasJUNTE-SE:
Uma junção é usada para exibir colunas com nomes iguais ou diferentes de tabelas diferentes. A saída exibida terá todas as colunas mostradas individualmente. Ou seja, as colunas serão alinhadas uma ao lado da outra.
UNIÃO:
O operador de conjunto UNION é usado para combinar dados de duas tabelas que possuem colunas com o mesmo tipo de dados. Quando uma UNION é executada, os dados de ambas as tabelas serão coletados em uma única coluna com o mesmo tipo de dados.
Por exemplo:
Veja as duas tabelas mostradas abaixo:
Agora, para executar um tipo JOIN, a consulta é mostrada abaixo.
Isso é uma junção.
UNION significa que você precisa criar tabelas ou conjunto de resultados com a mesma quantidade e tipo de colunas e adicioná-lo a tabelas / conjuntos de resultados juntos. Veja este exemplo:
fonte
São coisas completamente diferentes.
Uma junção permite relacionar dados semelhantes em tabelas diferentes.
Uma união retorna os resultados de duas consultas diferentes como um único conjunto de registros.
fonte
O Union faz duas consultas parecerem uma. Associações são para examinar duas ou mais tabelas em uma única instrução de consulta
fonte
Uniões e uniões podem ser usadas para combinar dados de uma ou mais tabelas. A diferença está na forma como os dados são combinados.
Em termos simples, as junções combinam dados em novas colunas. Se duas tabelas forem unidas, os dados da primeira tabela serão mostrados em um conjunto de colunas ao lado da coluna da segunda tabela na mesma linha.
Os sindicatos combinam dados em novas linhas. Se duas tabelas forem "unidas" juntas, os dados da primeira tabela estarão em um conjunto de linhas e os dados da segunda tabela em outro conjunto. As linhas estão no mesmo resultado.
fonte
Lembre-se de que a união mesclará resultados ( SQL Server, com certeza) (recurso ou bug?)
id, valor
1,3
id, valor, id, valor
1,3,1,3
fonte
UNION
vsUNION ALL
stackoverflow.com/questions/49925/…1. A cláusula SQL Joins é usada para combinar registros de duas ou mais tabelas em um banco de dados. Um JOIN é um meio de combinar campos de duas tabelas usando valores comuns a cada um.
2. O operador SQL UNION combina o resultado de duas ou mais instruções SELECT. Cada instrução SELECT dentro do UNION deve ter o mesmo número de colunas. As colunas também devem ter tipos de dados semelhantes. Além disso, as colunas em cada instrução SELECT devem estar na mesma ordem.
por exemplo: tabela 1 clientes / tabela 2 pedidos
junção interna:
SELECIONE ID, NOME, VALOR, DATA
DE CLIENTES
INNER JUNTAR PEDIDOS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
União:
SELECIONE ID, NOME, VALOR, DATA
DE CLIENTES
ORDENS DE JUNTA ESQUERDA
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
UNIÃO
SELECIONAR ID, NOME, VALOR, DATA DOS CLIENTES
ENCOMENDAR DIREITOS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
fonte
Utilizando UNION
UNION é combina os resultados de duas ou mais consultas em um único conjunto de resultados que inclui todas as linhas que pertencem a todas as consultas na união.
Usando JOINs
JOINs, você pode recuperar dados de duas ou mais tabelas com base em relacionamentos lógicos entre as tabelas.
fonte
Em resumo, eles são semelhantes, pois duas tabelas ou conjuntos de resultados estão sendo combinados, mas UNION é realmente para combinar conjuntos de resultados com o MESMO NÚMERO DE COLUNAS com as COLUNAS QUE TÊM TIPOS DE DADOS SIMILARES. A estrutura é a mesma, apenas novas linhas estão sendo adicionadas.
Nas junções, você pode combinar tabelas / conjuntos de resultados com qualquer estrutura possível, incluindo uma junção cartesiana onde NÃO há colunas compartilhadas / similares.
fonte
O operador UNION é apenas para combinar duas ou mais instruções SELECT.
Enquanto JOIN é para selecionar linhas de cada tabela, pelo método interno, externo, esquerdo ou direito.
Consulte aqui e aqui . Há uma explicação melhor com exemplos.
fonte
Operação da União é resultado combinado do Agregado Vertical das linhas, Operação da União é resultado combinado do Agregado Horizontal das Colunas.
fonte
Eu gosto de pensar na diferença geral como sendo:
fonte