Ir para conteúdo

POWERED BY:

Arquivado

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

Nick Marinho

Como fazer o conserto do SELECT duplo a seguir ?

Recommended Posts

Gente querida é o seguinte, estou precisando muito da ajuda de vocês...Tenho 2 tabelas, nesse caso ai.É um cadastro de pousadas, cada tipo de dado tem uma tabela por N motivos.Bom nesse problema meu ai o que eu precisaria era:O 1º select vai chamar as variaveis do 2º select, que são feitos em 2 tabelas diferentes, será que alguém pode e consegue me ajudar ?Está funcionando perfeitamente só que tem um bug pequeno que é mostrar tudo 2 vezes (rs).Chega a ser hilário, mas mostra o resultado das consultas duplicado.Aqui vai o "menino": <p style="padding-left:15px;"><%'' Esse 1º select chama todas as pousadas que existem num estado, onde o pais é o chamado na url pelo ID.'Sql = "SELECT * FROM estado as e, pousadas as p WHERE p.id_pais=" & Request.Querystring("pais") & " AND e.id_estado=p.id_estado ORDER BY estado"Set Rs = Conexao.Execute(Sql)if not Rs.eof then do while not Rs.eof ' ' Esse é o tal 2º select que está ai por causa da chatisse de um cara que quer porque quer mostrar a quantidade de pousadas de casa estado ! (blah) ' Fazer o que ? ' DoSql = "select count(id_pousada) as counter from pousadas as p WHERE p.id_estado=" & Rs("id_estado") & "" Set RsB = Conexao.Execute(DoSql) ' ' Aqui, logo abaixo vem o resultado. '%> <a href="pousadas.asp?pais=<%=Request.querystring("pais")%>&estado=<%=Rs("id_estado")%>">Pousadas no estado: <%=Rs("estado")%> (<%=RsB("counter")%>)</a><br /><% Rs.MoveNext loopelse Response.Write "Não há registros de pousadas no momento"end if%> </p>Isso ai é o que é, só que repete os registros por 2 vezes, já pensei e refiz esse código um milhão de vezes mas não acho onde errei, alguém ai me ajuda ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não entendi direito, mas select duplo eu faço assim oh:

 

sql01 = "select id_campo from tabela"set rs = conn.execute(sql01)while not rs.eofcampo = rs("id_campo")sql02 = "select * from tabela where campo = '"& campo &"'" set rs2 = conn.execute(sql02)while rs2.eofcampo_novo = rs2("qualquer campo do banco")response.write campo_novors2.movenextwendrs.movenextwend

Espero ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o problema...Era o seguinte:Sql = "SELECT * FROM estado as e, pousadas as p WHERE p.id_pais=" & Request.Querystring("pais") & " AND e.id_estado=p.id_estado ORDER BY estado"Esse select estava duplicando tudo por causa do bendito *, então o que eu fiz ? Mandei selecionar só o que eu precisava realmente, ficando assim:Sql = "SELECT e.id_estado, e.estado FROM estado as e, pousadas as p WHERE p.id_pais=" & Request.Querystring("pais") & " AND e.id_estado=p.id_estado ORDER BY estado"Pegando assim só o necessário que é o nome do estado e o id dele.Só mais uma coisa: se não colocar o DISTINCT ele coloca 2 vezes, assim se repetindo tbm.Deve-se fazer as 2 coisas, que são: Selecionar os campos que que queremos e ao mesmo tempo colocar o DISTINCT.Sql = "SELECT DISTINCT e.id_estado, e.estado FROM estado as e, pousadas as p WHERE p.id_pais=" & Request.Querystring("pais") & " AND e.id_estado=p.id_estado ORDER BY estado"PS: Vê se pode eu mesmo me corrigindo !!! ^_^

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.