Ir para conteúdo

POWERED BY:

Arquivado

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

Douglas.Pootz

[Resolvido] Consulta

Recommended Posts

Galera, eu to fazendo uma consulta no banco de dados

 

$b = mysql_query("SELECT * FROM boletos,clientes,apartamentos,empreendimentos,empresas

WHERE boletos.codap='$login' AND boletos.codap=apartamentos.codap AND apartamentos.codcli=clientes.codcli

AND apartamentos.codempreen=empreendimentos.codempreen AND empreendimentos.codemp=empresas.codemp

ORDER BY dataVencimento");

 

e ta vindo os dados duplicados no loop!!!

 

apartamentos(codap,codcli,coempreen)

clientes(codcli)

boletos(codap)

empreendimentos(codempreen,codemp)

empresas(codemp)

 

Ve se da pra entender!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

São 5 tabelas ?

Faça um JOIN entre elas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

organize para que você não se perca nas condições...

SELECT * FROM boletos,clientes,apartamentos,empreendimentos,empresas
WHERE (boletos.codap='$login') 
AND (boletos.codap=apartamentos.codap) 
AND (apartamentos.codcli=clientes.codcli)
AND (apartamentos.codempreen=empreendimentos.codempreen) 
AND (empreendimentos.codemp=empresas.codemp)
ORDER BY dataVencimento

e usa innerjoin ou faça assim (tabela1.campochave = campochave.tabela2) para determinar as ligações entre as tabelas..

 

valw ... acho que deve ser isto =]

 

de uma olhado nesse link

 

Links:

 

http://www.luis.blog.br/left-join-e-inner-...sultas-sql.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

$b = mysql_query("SELECT * FROM boletos,apartamentos,clientes,empreendimentos,empresas

WHERE (boletos.codap='$login')

AND (apartamentos.codap=boletos.codap)

AND (clientes.codcli=apartamentos.codcli)

AND (empreendimentos.codempreen=apartamentos.codempreen)

AND (empresas.codemp=empreendimentos.codemp)

ORDER BY dataVencimento");

 

Assim ja nao seria util?

 

eu tentei colocar

 

tabela1.camp=camp.tabela2

 

deu error!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal (como já foi falado) é usar JOIN.

 

Exemplo

 

SELECT * FROM tabela JOIN tabela2 ON tabela.campo = tabela2.campo2

Carlos Eduardo

 

EDIT - link para o manual

Compartilhar este post


Link para o post
Compartilhar em outros sites

$b = mysql_query("SELECT * FROM boletos

INNER JOIN apartamentos ON boletos.codap = apartamentos.codap

INNER JOIN clientes ON apartamentos.codcli = clientes.codcli

INNER JOIN empreendimentos ON apartamentos.codempreen = empreendimentos.codempreen

INNER JOIN empresas ON empreendimentos.codemp = empresas.codemp

WHERE (boletos.codap='$login')

ORDER BY dataVencimento");

 

Continua repetindo!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim

 

$b = mysql_query("SELECT * FROM boletos 
JOIN apartamentos USING (codap)
JOIN clientes USING (codcli)
JOIN empreendimentos USING (codempreen)
JOIN empresas USING (codemp)
WHERE (boletos.codap='$login')
ORDER BY dataVencimento");

Esta sintaxe (USING) é possível porque o nome do campo é igual nas 2 tabelas.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu testei esse q voce mandou e nao deu

 

Eu retirei essa linha

 

INNER JOIN clientes ON apartamentos.codcli = clientes.codcli

 

 

e parou de repetir, so que sumiu o nome dos clientes (LOGICO NEH) :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha acho que o modelo que vcs passaram esta certo, eu fiz bobeira aqui

 

a pagina que eu to fazendo a consulta e uma include de outra pagina que ja tinha a query de CLIENTES!

 

desculpe pelo transtorno kkkk

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.