Estou obtendo um erro com o Left Join. Tenho uma tabela bem simples
Tabela1:
Campo1 Campo2
A R
B R
B P
Primeiramente eu criei a seguinte consulta
SELECT Tabela1.Campo1 AS C1, Tabela1.Campo2 AS C2, "X" AS EXCLUSAO
FROM Tabela1
WHERE (((Tabela1.Campo2)="P"));
que gerou como resultado
Consulta1:
C1 C2 C3
B P X
depois eu fiz uma nova consulta
SELECT Tabela1.Campo1, Tabela1.Campo2, Consulta1.C2, Consulta1.C3
FROM Tabela1 LEFT JOIN Consulta1 ON Tabela1.Campo1 = Consulta1.C1;
que gerou como resultado
Consulta2:
Campo1 Campo2 C2 C3
A R X
B R P X
B P P X
O resultado da Consulta2 está errado. Com o Left Join, os campos C2 e C3 devem ser nulos quando não há correspondência entre a Tabela1 e a Consulta1. Porém o campo C3 está preenchido no primeiro registro da Consulta2.
Alguém pode me explicar a origem do erro e como evitá-lo?
Pergunta
ricardo.almeida
Estou obtendo um erro com o Left Join. Tenho uma tabela bem simples
Tabela1:
Campo1 Campo2
A R
B R
B P
Primeiramente eu criei a seguinte consulta
SELECT Tabela1.Campo1 AS C1, Tabela1.Campo2 AS C2, "X" AS EXCLUSAO
FROM Tabela1
WHERE (((Tabela1.Campo2)="P"));
que gerou como resultado
Consulta1:
C1 C2 C3
B P X
depois eu fiz uma nova consulta
SELECT Tabela1.Campo1, Tabela1.Campo2, Consulta1.C2, Consulta1.C3
FROM Tabela1 LEFT JOIN Consulta1 ON Tabela1.Campo1 = Consulta1.C1;
que gerou como resultado
Consulta2:
Campo1 Campo2 C2 C3
A R X
B R P X
B P P X
O resultado da Consulta2 está errado. Com o Left Join, os campos C2 e C3 devem ser nulos quando não há correspondência entre a Tabela1 e a Consulta1. Porém o campo C3 está preenchido no primeiro registro da Consulta2.
Alguém pode me explicar a origem do erro e como evitá-lo?
código SQL incorreto
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.