Внешнее Соединение с некоторыми другими таблицами из - PullRequest
0 голосов
/ 13 марта 2009
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?

Ответы [ 5 ]

1 голос
/ 13 марта 2009

Нет, вам не нужно использовать союз. Если я правильно понимаю ваш вопрос, это так же просто, как объединить такие вещи:

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]) 
0 голосов
/ 13 марта 2009

При условии, что вы хотите присоединиться ко всем таблицам, которые вы делаете:

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

Я думаю, вы должны уточнить свой вопрос, чтобы прекратить наши предположения.

0 голосов
/ 13 марта 2009

Может быть:

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
0 голосов
/ 13 марта 2009

Я понимаю, что вы хотите ВНЕШНЕЕ СОЕДИНИТЬ с таблицей, не используя синтаксис JOIN?

Какую СУБД вы используете? Это можно сделать в предложении from, но синтаксис отличается от СУБД к СУБД.

Например, в SQL Server это синтаксис:

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

С другой стороны, в Oracle вы не используете звездочку, а (+), насколько я помню.

Во всяком случае, я думаю, что яснее использовать синтаксис JOIN (LEFT JOIN ...)

0 голосов
/ 13 марта 2009
FROM [TABELA DE PRODUTOS/ESTOQUE] AS TABLE1
LEFT JOIN [TABELA DE MOVIMENTAÇÃO DE ESTOQUE] AS TABLE2
ON TABLE1.ID=TABLE2.ID
...