Saltar navegação

S01.a2 - Diversas Tabelas

Conceitos

Tabela de Itens Acabados (ASSM)

ACODE DESC
A1
TABLE 24X36
A2
TABLE 30X60
A3
TABLE & RETURN

Tabela de Peças (PARTLIST)

ACODE CCODE
QTY
A1
C1
1
A1
C3
4
A2
C2
1
A2
C3
4
A3
C1
1
A3
C2
1
A3
C3
6
A3
C4
1

Tabela de Componentes (CMPT)

CCODE DESC
C1
TABLE TOP 24X36
C2
TABLE TOP 30X60
C3
TABLE LEG
C4
RETURN CONNECTOR

As tabelas acima são parte de uma estrutura de inventário de uma companhia que monta móveis de escritório.

A tabela ASSM contém a lista de todos os móveis montados pela companhia. A tabela PARTLIST contém uma linha para cada peça necessária para a montagem. A tabela CMPT contém uma linha para cada componente necessário à montagem. Na tabela PARTLIST, as colunas ACODE e CCODE são foreign keys.

A lista de componentes necessários a cada montagem exige dados das três tabelas.

Inner join implícito

SELECT A.ACODE AS ASSM_CODE, A.DESC AS ASSM_DESC,
  PL.CCODE AS CMPT_CODE, C.DESC AS CMPT_DESC,
  PL,QTY AS QUANTITY
FROM PW0001.PARTLIST PL, PW0001.CMPT C, PW0001.ASSM A
WHERE A.ACODE = PL.ACODE
AND C.CCODE = PL.CCODE
ORDER BY ASSM_CODE, CMPT_CODE

Inner join explícito

SELECT A.ACODE AS ASSM_CODE, A.DESC AS ASSM_DESC,
  PL.CODE AS CMPT_CODE, C.DESC AS CMPT_DESC,
  PL.QTY AS QUANTITY
FROM PW0001.PARTLIST PL
INNER JOIN PW0001.ASSM A
  ON A.ACODE = PL.ACODE
INNER JOIN PW0001.CMPT C
  ON C.CCODE = PL.CCODE
ORDER BY ASSM_CODE, CMPT_CODE

Tabela Resultado

ASSM_CODE ASSM_DESC
CMPT_CODE
CMPT_DESC
QUANTITY
A1 TABLE 24X36
C1
TABLE TOP 24X36
1
A1
TABLE 24X36
C3 TABLE LEG 4
A2 TABLE 30X60
C2 TABLE TOP 24X36
1
A2 TABLE 30X60
C3 TABLE LEG
4
A3 TABLE & RETURN C1 TABLE TOP 24X36
1
A3 TABLE & RETURN
C2 TABLE TOP 24X36
1
A3 TABLE & RETURN
C3 TABLE LEG
6
A3 TABLE & RETURN
C4 RETURN CONNECTOR 1

Quando um join de três ou mais tabelas é executado, são feitos vários passos para combinar as tabelas.

Em cada passo, a tabela composite (outer table) é combinada com a tabela nova (inner table). No primeiro passo a tabela composite é a primeira tabela nomeada na declaração. Dái em diante a tabela composite é a tabela intermediária criada no passo anterior. Nos exemplo explícito acima, o primeiro passo é combinar a tabela PARTLIST com a tabela ASSM, criando a tabela intermediária (composite). No segundo passo a tabela intermediária (composite) é combinada com a tabela CMTP (tabela nova).

Licença: licença proprietária