Pergunta

FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
, [TABELA DE PRODUTOS] AS T2
, [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
, [TABELA DE FORNECEDORES] AS T4
, [TABELA DE PRODUTOS/ESTOQUE] AS T5
WHERE (((T1.Produto)=[T2].[ID]) 
ETC

Então, como posso adicionar um JOIN entre as tabelas? Eu preciso de uma associação à esquerda, como:

FROM [TABELA DE PRODUTOS/ESTOQUE] <- TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] <- TABLE2
ON TABLE1.ID=TABLE2.ID

Obs: Table1 e Table2 eu adicionei para explicar

Graças.


Eu tenho que usar UNIÃO?

Foi útil?

Solução

Não, você não tem que usar uma união. Se entendi sua pergunta corretamente, é tão simples como combinar as coisas como esta:

FROM      [TABELA DE PRODUTOS/ESTOQUE]            AS T1,
          [TABELA DE PRODUTOS]                    AS T2,
          [TABELA DE MOVIMENTAÇÃO DE ESTOQUE]     AS T3A,
          [TABELA DE FORNECEDORES]                AS T4,
          [TABELA DE PRODUTOS/ESTOQUE]            AS T5,
LEFT JOIN 
          [TABELA DE MOVIMENTAÇÃO DE ESTOQUE]     AS T3B ON T1.ID=T3B.ID
WHERE (((T1.Produto)=[T2].[ID]) 

Outras dicas

FROM [TABELA DE PRODUTOS/ESTOQUE] AS TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS TABLE2
ON TABLE1.ID=TABLE2.ID

Eu entendo que você quer OUTER JOIN uma tabela, sem usar o 'sintaxe JOIN'?

O DBMS você está usando? É possível fazer isso na cláusula from, mas os difere de sintaxe de DBMS para DBMS.

Por exemplo, no SQL Server, esta é a sintaxe:

SELECT * 
FROM Table1, Table2
WHERE Table1.Id *= Table2.Id

Na Oracle, por outro lado, você não usar um asterisco, mas um (+) tanto quanto eu me lembro.

De qualquer forma, eu acho que é mais clara de usar o JOIN-sintaxe (LEFT JOIN ...)

Talvez:

FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1
, [TABELA DE PRODUTOS] AS T2
, [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3
, [TABELA DE FORNECEDORES] AS T4
, [TABELA DE PRODUTOS/ESTOQUE] AS T5
WHERE (T1.Produto=T2.ID OR T2.ID IS NULL)
ETC

Desde que você quer se juntar a esquerda todas as tabelas que você faria:

SELECT *
FROM [TABELA DE PRODUTOS/ESTOQUE] AS T1 
LEFT OUTER JOIN [TABELA DE PRODUTOS] AS T2 ON T1.Key = T2.Key
LEFT OUTER JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS T3 ON T2.Key = T3.Key
LEFT OUTER JOIN [TABELA DE FORNECEDORES] AS T4 ON T3.Key = T4.Key
LEFT OUTER JOIN [TABELA DE PRODUTOS/ESTOQUE] AS T5 ON T4.Key = T5.Key

Eu acho que você tem que esclarecer sua pergunta, a fim de parar a nossa suposição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top