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.
Conteúdo
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 -