Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GnomO!

Select usando 4 tabelas

Recommended Posts

galera.. to qrendo fazer uma query que relacione 4 tabelas, Imoveis, ImoCidades, ImoBairros, ImoTipos tentei fazer assim:

rstGeral.Open "SELECT Imoveis.*, ImoBairros.IdBairro, ImoBairros.NomeBairro, ImoCidades.IdCidade, ImoCidades.NomeCidade, ImoTipos.IdTipo, ImoTipos.Tipo FROM Imoveis RIGHT JOIN (ImoBairros INNER JOIN (ImoCidades INNER JOIN ImoTipos ON ImoTipos.IdTipo = Imoveis.TipoImovel) ON ImoCidades.IdCidade = Imoveis.Cidade) ON ImoBairros.IdBairro = Imoveis.Bairro WHERE Imoveis.Codigo=" & Request("cod"), conn

Só que retorna o seguinte erro:Tipo de erro:Microsoft JET Database Engine (0x80040E14)Erro de sintaxe na operação JOIN./testes/join/Default.asp, line 32alguem pode me ajudaR?Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

strSQL =	"SELECT IM.*, IB.IdBairro, IB.NomeBairro, IC.IdCidade, IC.NomeCidade " & _			"FROM Imoveis IM " & _			"INNER JOIN ImoCidades IC ON IC.IdCidade = IM.Cidade " & _			"INNER JOIN ImoTipos IT ON IT.IdTipo = IM.TipoImovel " & _			"RIGHT JOIN ImoBairros IB ON IB.IdBairro = IM.Bairro " & _			"WHERE IM.Codigo = " & Request("cod")

Depois mostra o que aconteceu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada dataset,

 

Quase postamos junto!

 

Tu es rápido no gatilho!! ahaha

 

Com a resposta era a msm vou deixar a sua que é mais velha!!

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites
strSQL =    "SELECT IM.Imoveis.*, IB.IdBairro, IB.NomeBairro, IC.IdCidade, IC.NomeCidade, IT.IdTipo, IT.Tipo " & _            "FROM Imoveis IM " & _            "INNER JOIN ImoCidades IC ON IC.IdCidade = IM.Cidade " & _            "INNER JOIN ImoTipos IT ON IT.IdTipo = IM.TipoImovel " & _            "RIGHT JOIN ImoBairros IB ON IB.IdBairro = IM.Bairro " & _            "WHERE IM.Codigo = " & Request("cod")	rstGeral.Open strSQL, conn

Retornou:Microsoft JET Database Engine (0x80040E14)Erro de sintaxe (operador faltando) na expressão de consulta 'IC.IdCidade = IM.Cidade INNER JOIN ImoTipos IT ON IT.IdTipo = IM.TipoImovel RIGHT JOIN ImoBairros IB ON IB.IdBairro = IM.Bairro'./testes/join/Default.asp, line 38vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Aparentemente seu select tá legal.

 

Pelo erro parece-me incompatibilidade de tipos.

 

Só como curiosisade o join:

INNER JOIN ImoCidades IC ON IC.IdCidade = IM.Cidade

Não seria:

INNER JOIN ImoCidades IC ON IC.IdCidade = IM.idCidade

É só um chute pois não conheço a modelagem de seus dados.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo jothaz, eu sou rápido no gatilho porque aprendo com seus posts... ehheh você é fera.

 

Brother... te recomendo duas coisas:

 

Se o teu banco for o ACCESS, usa a consulta no módo formulário, assim você vai relacinando. Se nao for;

Vai fazendo a consulta por partes. Primeiro relaciona duas tabelas, depois dá um INNER JOIN na terceira, e assim vai indo.

 

Tenho certeza que vai dar certo. A consulta que passamos parece estar tudo ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.