Como usar junção cruzada, natural juntar-se, e condição de junção em sql

SQL suporta um número de tipos de junções. A melhor opção para escolher em uma determinada situação depende do resultado que você está tentando alcançar. Aqui estão alguns detalhes para ajudar você a escolher qual deles você precisa.

Video: União/Junção de tabelas e Select com operadores Operadores de comparação - MySQL

CROSS JOIN

CROSS JOIN é a palavra-chave para o básico juntar-se sem ONDE cláusula. Assim sendo

Video: SQL - Junção cruzada

SELECT * FROM EMPREGADOS, COMPENSAÇÃO -

também pode ser escrita como

SELECT * FROM EMPREGADOS CROSS JOIN COMPENSAÇÃO -

O resultado é o produto cartesiano (também chamado de produto cruzado) Das duas tabelas de origem. CROSS JOIN raramente lhe dá o resultado final que você quer, mas pode ser útil como o primeiro passo de uma cadeia de operações de manipulação de dados que finalmente produzir o resultado desejado.

Natural juntar

o junção natural é um caso especial de uma junção de igualdade. No ONDE cláusula de uma junção de igualdade, uma coluna a partir de uma tabela de origem é comparada com uma coluna de uma segunda tabela de origem para a igualdade. As duas colunas deve ser do mesmo tipo e comprimento e devem ter o mesmo nome.

Video: CURSO SQL - O7 - Junção com WHERE e ALIAS(AS)

De fato, em participar de um natural, todas as colunas de uma tabela que têm os mesmos nomes, tipos e comprimentos como colunas correspondentes na segunda tabela são comparados pela igualdade.



Imagine que a tabela de COMPENSAÇÃO do exemplo anterior tem colunas EmpID, Salário, e Bônus ao invés de Empregar, Salário, e Bônus. Nesse caso, você pode executar participar de um natural de mesa a compensação com a tabela EMPREGADOS. O tradicional JUNTE-SE sintaxe ficaria assim:

SELECIONAR E. *, C.Salary, C.BonusFROM EMPREGADOS E, COMPENSAÇÃO CWHERE E.EmpID = C.EmpID -

Esta consulta é um caso especial de uma junção natural. o SELECIONAR declaração retornará juntou linhas onde E.EmpID = C.EmpID. Considere o seguinte:

SELECIONAR E. *, C.Salary, C.BonusFROM EMPREGADOS E NATURAL JOIN COMPENSAÇÃO C -

Esta consulta irá juntar-se as linhas onde E.EmpID = C.EmpID, Onde e.salary = C.Salary, e onde E.Bonus = C.Bonus. A tabela de resultados conterá apenas as linhas onde todos colunas correspondentes corresponder. Neste exemplo, os resultados de ambas as consultas será o mesmo porque a tabela de empregado não conter um Salário ou um Bônus coluna.

condição de junção

UMA condição de junção é como uma junção de igualdade, exceto a condição que está sendo testada não tem que ser uma igualdade (embora possa ser). Pode ser qualquer predicado bem formado. Se a condição for satisfeita, então o correspondente linha torna-se parte da tabela de resultados. A sintaxe é um pouco diferente do que você já viu até agora: A condição está contida em um EM cláusula em vez de um ONDE cláusula.

Dizer que um estatístico de beisebol quer saber qual jarros Liga Nacional de ter lançado o mesmo número de jogos completos como um ou mais arremessadores da Liga Americana. Esta questão é um trabalho para uma junção de igualdade, que também pode ser expressa com a sintaxe condição join:

SELECT * da National Cadastre AMERICANON NATIONAL.CompleteGames = AMERICAN.CompleteGames -

Publicações relacionadas