0
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

那么,如何在这些表之间添加 JOIN 呢?我需要一个左连接,比如:

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

Obs: Table1 和 Table2 我刚刚添加解释

谢谢。


我必须使用 UNION 吗?

4

5 回答 5

1

不,您不必使用工会。如果我正确理解你的问题,它就像结合这样的事情一样简单:

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]) 
于 2009-03-13T20:22:34.207 回答
0
FROM [TABELA DE PRODUTOS/ESTOQUE] AS TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS TABLE2
ON TABLE1.ID=TABLE2.ID
于 2009-03-13T20:23:45.497 回答
0

我了解您想在不使用 'JOIN 语法' 的情况下 OUTER JOIN 一个表?

您使用的是什么 DBMS?可以在 from 子句中执行此操作,但语法因 DBMS 而异。

例如,在 SQL Server 中,语法如下:

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

另一方面,据我所知,在 Oracle 中,您不使用星号,而是使用 (+)。

无论如何,我认为使用 JOIN 语法 (LEFT JOIN ... ) 更清晰

于 2009-03-13T20:24:02.203 回答
0

也许:

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
于 2009-03-13T20:24:17.680 回答
0

如果你想离开你会做的所有表:

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

I think you have to clarify your question in order to stop our guessing.

于 2009-03-13T20:26:02.200 回答