Question

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

Alors, comment puis-je ajouter un JOIN entre ces tables? J'ai besoin d'une gauche rejoindre, comme:

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

Obs: Les tableaux 1 et 2 que je viens d’ajouter pour expliquer

Merci.

Dois-je utiliser UNION?

Était-ce utile?

La solution

Non, vous n'êtes pas obligé d'utiliser un syndicat. Si je comprends bien votre question, c’est aussi simple que de combiner des choses comme celle-ci:

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]) 

Autres conseils

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

Je comprends que vous souhaitiez OUTER JOIN une table, sans utiliser la "syntaxe JOIN"?

Quel SGBD utilisez-vous? Ceci est possible dans la clause from, mais la syntaxe diffère d'un SGBD à l'autre.

Par exemple, dans SQL Server, il s’agit de la syntaxe suivante:

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

En revanche, dans Oracle, vous n’utilisez pas un astérisque, mais un (+) pour autant que je me souvienne.

Quoi qu'il en soit, je pense qu'il est plus clair d'utiliser la syntaxe JOIN (LEFT JOIN ...)

Peut-être:

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

Si vous voulez laisser rejoindre toutes les tables que vous feriez:

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

Je pense que vous devez clarifier votre question afin d'arrêter nos suppositions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top