Como usar uma junção de igualdade no sql

O mais comum juntar-se que utiliza o SQL ONDE

filtro de cláusula é a junção de igualdade. A equi-join é participar de um básica com uma ONDE cláusula que contém uma condição especifica que o valor em uma coluna na primeira tabela deve ser igual ao valor de uma coluna correspondente na segunda tabela. Aplicação de uma junção de igualdade com as tabelas de exemplo traz um resultado mais significativo:

Video: 19 - T-SQL - Funções Agregadas - SUM, COUNT, MAX, MIN, AVG - SQL Server

SELECT * FROM EMPREGADOS, COMPENSATIONWHERE EMPLOYEE.EmpID = COMPENSATION.Employ -

Esta consulta produz os seguintes resultados:

EmpID FName LName Cidade Empregar Telefone Salário Bonus ----- ------ ----- ---- ----- ------ ------ ----- 1 Whitey Ford laranja 555-1001 1 33000 100002 Don Larson Newark 555-3221 2 18000 20003 Sal Maglie Nutley 555-6905 3 24000 50004 Bob Turley Passaic 555-8908 4 22000 7000

Nesta tabela resultado, os salários e bônus sobre o direito aplicam-se aos funcionários nomeados no lado esquerdo. A tabela ainda tem alguma redundância porque o EmpID duplica a coluna Empregar coluna. Você pode corrigir esse problema, reformulando ligeiramente a consulta, como este:

FUNCIONÁRIO SELECT *, COMPENSATION.Salary, COMPENSATION.BonusFROM FUNCIONÁRIO, COMPENSATIONWHERE EMPLOYEE.EmpID = COMPENSATION.Employ. -

Esta consulta produz a tabela de resultados seguinte:

Video: PD - SELECT com JOIN no SQL Server 2008 ( como utilizar JOIN no SELECT )

EmpID FName LName Cidade Salário Telefone Bonus ----- ----- ----- ---- ----- ------ ----- 1 Laranja Whitey Ford 555-1001 33000 100002 Don Larson Newark 555-3221 18000 20003 Sal Maglie Nutley 555-6905 24000 50004 Bob Turley Passaic 555-8908 22000 7000

Esta tabela diz o que você quer saber, mas não sobrecarregá-lo com quaisquer dados estranhos. A consulta é um pouco tedioso para escrever, no entanto. Para evitar a ambiguidade, você pode qualificar os nomes das colunas com os nomes das tabelas de onde vieram. Digitando os nomes de tabela repetidamente fornece um bom exercício para os dedos, mas não tem outro mérito.

Video: Tutorial SQL - 007 [Como usar UNION]

Você pode reduzir a quantidade de digitação usando apelidos (ou nomes de correlação). A pseudônimo é um nome curto que representa um nome de tabela. Se você usar aliases em reformulação da consulta anterior, ele sai como este:

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


Neste exemplo, E é o nome alternativo para o empregado, e C é o nome alternativo para a compensação. O alias é local para a declaração está em. Depois de declarar um alias (no A PARTIR DE cláusula), você deve usá-lo durante todo o comunicado. Você não pode usar tanto o alias e a forma longa do nome da tabela na mesma declaração.

Video: Tutorial SQL - 006 [Como usar o Exists]

Mesmo se você pode misturar a forma longa de nomes de tabelas com aliases, você não iria querer, porque isso cria grande confusão. Considere o seguinte exemplo:

SELECIONAR T1.C, T2.CFROM T1 T2, T2 T1WHERE T1.C gt; T2.C -

Neste exemplo, o apelido para T1 é T2, e a alias para T2 é T1. Evidentemente, isso não é uma seleção inteligente de apelidos, mas não é proibido pelas regras. Se você misturar aliases com nomes de tabelas de formato longo, você não pode dizer qual tabela é qual.

O exemplo anterior com pseudónimos é equivalente à que se segue SELECIONAR declaração sem aliases:

SELECIONAR T2.C, T1.CFROM T1, T2WHERE T2.C gt; T1.C -

SQL permite-lhe juntar-se mais de duas tabelas. O número máximo varia de uma aplicação para outra. A sintaxe é análogo ao caso- de duas tabelas aqui está o que parece:

SELECCIONAR E. *, C.Salary, C.Bonus, Y.TotalSalesFROM EMPREGADOS E, COMPENSAÇÃO C, ytd_sales YWHERE E.EmpID = C.EmployAND C.Employ = Y.EmpNo -

Esta declaração executa uma junção de igualdade em três mesas, puxando dados de filas de cada uma correspondendo a produzir uma tabela de resultados que mostra nomes dos vendedores, a quantidade de vendas são responsáveis ​​por, e sua remuneração. O gerente de vendas pode ver rapidamente se a compensação está em linha com a produção.

Armazenar as vendas year-to-date de um vendedor em uma tabela ytd_sales separado garante melhor desempenho do computador e confiabilidade dos dados do que manter os dados na tabela EMPREGADOS. Os dados na tabela EMPREGADOS é relativamente estática. nome, endereço e número de telefone de uma pessoa não mudam muito frequentemente. Em contraste, as vendas de ano-to-date mudar frequentemente (que espero).

Como a tabela ytd_sales tem menos colunas do que a tabela EMPREGADOS, você pode ser capaz de atualizá-lo mais rapidamente. Se, no curso de atualização totais de vendas, você não tocar a tabela EMPREGADOS, você diminui o risco de acidentalmente modificar a informação do empregado que deve permanecer o mesmo.


Publicações relacionadas