Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago j.a

[Resolvido] Consultas Repetidas MYSQL

Recommended Posts

BOm dia pessoal, tenho uma consulta no banco, onde mostro todos os equipamentos, e tenho vários registros com o mesmo equipamento

 

equipamento 1, codigo 1, certificado 1

equipamento 1, codigo 2, certificado 2

equipamento 2, codigo 3, certificado 3

e ai vai..

Gostaria de saber se tem alguma forma de mostrar apenas uma vez cada equipamento, e quando for inserido algo no equipamento 1 por exemplo, inserir em todos equipamentos 1.

A consulta estou fazendo assim, andei pesquisando, e pelo que vi, para imprimir apenas 1 vez, usa-se o DISTINCT, só que está me dando erro de sintaxe pela forma que estou fazendo.

Desde já agradeço!

 

$consulta = mysql_query("select c.*, s.*, d.*, e.* from usuario d, certificado c, fornecedores s, equipamento e where d.usuario = '$login_usuario' and d.Fornecedor = s.fornecedor and c.numero_certificado = e.numero_certificado and c.fornecedor = s.fornecedor and s.fornecedor = d.fornecedor and !LENGTH(e.data_f) > 0 order by e.equipamento")or die(mysql_error());;

Compartilhar este post


Link para o post
Compartilhar em outros sites

aprenda sobre JOIN

 

http://dev.mysql.com/doc/refman/5.0/en/join.html

 

para retornar apenas o primeiro valor, utilize 'LIMIT 1'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Evandro, desde já brigado pela força.

É que, não é o 1º valor que tenho que retornar, preciso que ele retorne apenas uma vez os valores, se tenho

A

A

me retorna-se só

A

desta forma que estou fazendo, tem como fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O 'DISTINCT' só vai funcionar se todos os campos filtrados forem iguais

 

 

[nome] [idade] [sexo]
zé      19      m
joão    20      m
alice   19      f
zé      19      m
joão    21      m

SELECT DISTINCT FROM `tabela`

 

[nome] [idade] [sexo]
zé      19      m
joão    20      m
alice   19      f
joão    21      m

SELECT DISTINCT `nome` FROM `tabela`

[nome]
zé    
joão  
alice

SELECT DISTINCT `idade` FROM `tabela`

 

[idade]
19
20
21

SELECT DISTINCT `sexo` FROM `tabela`

[sexo]
m
f

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque no select somente os campos que você quer. Nao coloque tudo *. Ele só agrupa dados iguais quando os outros forem iguais.

Por exemplo, nesse caso que você postou:

 

equipamento 1, codigo 1, certificado 1

equipamento 1, codigo 2, certificado 2

equipamento 2, codigo 3, certificado 3

 

Ele nao vai agrupar o equipamento 1, porque o código e o certificado são diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que eu preciso fazer algumas verifições, para saber de qual fornecedor é o equipamento, qual o seu certificado, e esses dados eu tenho em outras tabelas.

Colocando desta forma ele imprime apenas uma vez os equipamentos, mas dai ele pega os equipamentos dos outros fornecedores também,

SELECT DISTINCT equipamento FROM equipamento
o que nesta verificaçao que fazia na outra consulta ele não mostraria, mostraria apenas os equipamentos do usuario que logou.

where d.usuario = '$login_usuario' and d.Fornecedor = s.fornecedor and c.numero_certificado = e.numero_certificado and c.fornecedor = s.fornecedor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua dúvida é na montagem da query, então vou mover para o fórum de MySQL.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL

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.