RIGHT JOIN

USUARIO.EXCLUIDOS 29/12/2004 14:39:42
#57628
Olá,

Estou tentando fazer um join para retornar os registros da tabela1, onde tabela1.campo1 seja igual a um valor x, e todos os registros da tabela2.

A tabela1 e a tabela2 tem um campo2 em comum, onde todos os tabela1.campo2 se emcontram na tabela2.campo2, mas nem todos tabela2.campo2 se encontram na tabela1.campo2.

Minha última tentativa foi essa:

SSQL = "SELECT fogmat.código,fog,explodido.desenho,fogmat.quantidade," & _
"FORMAT(fogmat.preço,'#,##0.00') AS [preço cobrado] " & _
"FROM fogmat " & _
"RIGHT JOIN explodido ON fogmat.desenho = explodido.desenho " & _
"WHERE fog = " & txtCodigo

Mas só retornaram os registros da tabela1.
Obrigado...
USUARIO.EXCLUIDOS 29/12/2004 15:13:43
#57636
Resposta escolhida
veja bem..teu join está correto (a sintaxe)....
mas primeira pergunta..o campo fog é de qual tabela ?

Este campo provavelmente esta limitando o right join.
Algo como se for da tabela 1 o fog, não existe nenhuma entrada na tabela2
pra este fog da tabela 1
Se vc tirar o fog = '' vai te trazer todos os dados da tabela 2 e somente os da tabela 1 que forem iguais..os que não forem os campos da tabela 1 virão null
é isso


USUARIO.EXCLUIDOS 29/12/2004 16:37:41
#57662
é isso mesmo......vai te trazer todos da explodido e somente da fogmat quando desenho for igual nas duas..só que se vc colocar o campo fog igual a alguma coisa....já foge desta regra.Tenta fazer assim

SELECT A.código,A.fog,explodido.desenho,A.quantidade,
A.FORMAT(fogmat.preço,'#,##0.00') AS [preço cobrado]
FROM (select * from fogmat where fog = " & txtcodigo) A
RIGHT JOIN explodido ON A.desenho = explodido.desenho
Tópico encerrado , respostas não são mais permitidas