Saltar navegação

S01.a1 - Qualificadores

Conceitos

Quando fazendo join de dados de duas ou mais tabelas que tem nomes de colunas duplicados, é necessário qualificar este nomes ao se referir a eles na declaração SQL.

Por exemplo, as tabelas abaixo apresentam o mesmo nome para a coluna de código de produto (CODPROD).

Tabela Peças

PECA CODPROD
FORNECEDOR
FIO 10
AMCO
VIDRO
35
BRADCO
PLASTICO
50
CHEM_OK
MAGNETO
10
TURNER
LAMINAS
250
HOWARTH

Tabela Produtos

CODPROD PRODUTO
PREÇO
250
SERRA
22.00
10
ALTERNADOR
55.50
45
ALICATE
75.75
50
RELE
12.25

Inner join que utiliza nomes qualificadores.

SELECT PW0001.PECAS.PECA, PW0001.PECAS.FORNECEDOR ,
  PW0001.PECAS.CODPROD, PW0001.PRODUTOS.PRODUTO
  FROM PW0001.PECAS
  INNER JOIN PW0001.PRODUTOS
  ON PW0001.PECAS.CODPROD = PW0001.PRODUTOS.CODPROD

O mesmo inner join com sinonimos nos nomes qualificadores.

SELECT A.PECA, A.FORNECEDOR, A.CODPROD, B.PRODUTO
  FROM PW0001.PECAS A
  INNER JOIN PW0001.PRODUTOS B
  ON A.CODPROD = B.CODPROD

Tabela Resultado

PEÇA FORNECEDOR
CODPROD
PRODUTO
MAGNETO
TURNER
10
ALTERNADOR
FIO
AMCO
10
ALTERNADOR
PLASTICO
CHEM_OK
50
RELE
LAMINAS
HOWARTH
250
SERRA

O nome qualificador é composto do nome da tabela e do nome da coluna.

O sinonimo é um nome alternativo dado à tabela dentro da declaração SELECT e pode ser usado nos nomes qualificadores.

Se a cláusula ORDER BY não for codificada a sequencia de linhas na tabela resultado é imprevisível.

No exemplo acima, a peça VIDRO na tabela PECAS não está na tabela PRODUTOS. O produto ALICATE na tabela PRODUTOS não está na tabela PECAS. Na tabela resultado, nem ALICATE nem VIDRO aparecem.

Licença: licença proprietária