Ir para conteúdo

POWERED BY:

Arquivado

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

ricardo coelho designer

mostrar resultados 2 tabelas com join em mysql com erro

Recommended Posts

Pessoal estou precisando imprimir resultado de uma busca sendo que, preciso ver se existe nas duas tabelas o mesmo código de identificação, mas da erro, abaixo segue o script para que possam ver qual o erro.

 

sql = "SELECT * " _
& "FROM tabela1 JOIN tabela2 " _
& "ON tabela2.cod_empreendimento =  tabela1.cod_empreendimento" _
& "WHERE tabela1.status = 'P' " _
& "and tabela1.cidade LIKE '%" & cidade & "%' " _
& "and tabela1.estado LIKE '%" & estado & "%' " _
& "and tabela1.finalidade LIKE '%" & finalidade & "%' " _
& "and tabela1.tipo LIKE '%" & tipo & "%' " _
& "and tabela1.preco_busca LIKE '%" & preco_busca & "%'" _
& "and tabela1.dormitorios_busca LIKE '%" & dormitorios_busca & "%' " _
& "and tabela1.bairro LIKE '%" & bairro & "%' " _
& "and tabela1.vagas_busca LIKE '%" & vagas_busca & "%' " _
& "and tabela1.id LIKE '%" & Replace (cod_empreendimento, "PI-","") & "%' " _
& "order by tabela1.id asc"

 

O erro é esse

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[MySQL][ODBC 5.1 Driver][mysqld-5.1.54-rel12.6-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tabela1.status = 'P' and tabela1.cidade LIKE '%%' and tb' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escreva o valor de sql na tele e poste aqui para procurarmos o possivel erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escreva o valor de sql na tele e poste aqui para procurarmos o possivel erro

 

A comparação é no banco de dados sem usar variavel & "ON tabela2.cod_empreendimento = tabela1.cod_empreendimento" _

 

A comparação é no banco de dados sem usar variavel & "ON tabela2.cod_empreendimento = tabela1.cod_empreendimento" _

 

cara abaixo o codigo funcionando

 

sql = "SELECT * " _
& "FROM tabela1 " _
& "INNER JOIN tabela2 " _
& "ON tabela2.cod_empreendimento =  tabela1.cod_empreendimento " _
& "WHERE tbl_tabela1.status = 'P' " _
& "and tabela1.cidade LIKE '%" & cidade & "%' " _
& "and tabela1.estado LIKE '%" & estado & "%' " _
& "and tabela1.finalidade LIKE '%" & finalidade & "%' " _
& "and tabela1.tipo LIKE '%" & tipo & "%' " _
& "and tabela1.preco_busca LIKE '%" & preco_busca & "%'" _
& "and tabela1.dormitorios_busca LIKE '%" & dormitorios_busca & "%' " _
& "and tabela1.bairro LIKE '%" & bairro & "%' " _
& "and tabela1.vagas_busca LIKE '%" & vagas_busca & "%' " _
& "and tabela1.id LIKE '%" & Replace (cod_empreendimento, "PI-","") & "%' " _
& "order by tabela1.id asc"

 

Só que o resultado existem valores duplicados, mas poderia usar o distinct só que ao usar valor distinct, ele na impressão dos resultado mostra que determinado resultado não está na tabela. ex. sql = "SELECT DISTINCT tabela1.cod_empreendimento" _, sendo que é visualizado varios resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi o seu comentário?

 

pode postar o que pedi?

 

-----------

 

editando para editar apos a sua edição

 

----------

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi o seu comentário?

 

pode postar o que pedi?

 

-----------

 

editando para editar apos a sua edição

 

----------

 

Cara agora o que eu preciso é fazer com que os campos não apareçam duplicado, só que com o "distinct nomedacoluna" limita de aparecer outros dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que agrupar os campos necessários resolva resolva

 

use GROUP BY com os campos principais em sua consulta antes do ORDER BY

Compartilhar este post


Link para o post
Compartilhar em outros sites

select * from table1 as a inner join table2 on a.id=b.id and a.nome=b.nome where a.column like '%"variavel"%' group by a.nome

 

Veja se funcione.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá mais o que está aparecendo nesse select ? qual é o resultado que dá do select ? que campos aparecem duplicados ? você não poderia mostrar o resultado do select ? Exemplo

Sintaxe sql :

SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

O Resultado da tabela :

P_Id 	LastName 	FirstName 	Address 	City
1 	Hansen 	        Ola 	        Timoteivn 10 	Sandnes
2 	Svendson 	Tove 	        Borgvn 23 	Sandnes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

 

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)

response.end()

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.