Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Estas en el tema de Consulta que no repita el valor de un campo si se encuentra mas de 2 veces en el foro de Mysql en Foros del Web. Hola amigos, Yo estoy tratando de optimizar una consulta para no tener que usar query dentro de otros query. El punto es este, yo tengo ...
  #1 (permalink)  
Antiguo 10/03/2010, 20:21
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 7 meses
Puntos: 0
Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Hola amigos,

Yo estoy tratando de optimizar una consulta para no tener que usar query dentro de otros query.

El punto es este, yo tengo dos campos, donde uno es "nombre" y el otro es "comentario"

Ahora bien, la misma persona puede puede hacer tres comentarios en donde se introduce en la BD un registro para cada comentario y en el campo nombre repite el nombre del usuario, quedando de este modo

Nombre
Jose
jose
jose

comentario
Comentario 1
Comentario 2
Comentario 3

Ahora, lo que quiero imprimir cuando muestre los comentarios de jose es que me traiga una sola vez el nombre de jose con todos sus comentarios, en este caso serian los tres comentarios.

Alguno me puede ayudar con esta consulta, y no coloco nada de codigo, porque no tengo la minima idea de como hacer esta consulta.

Gracias de antemano
  #2 (permalink)  
Antiguo 10/03/2010, 20:40
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Que mas

primero que todo se me hace quetiene mal organizados los datos en la bd.

deberia haber una tabla usuarios con id y nombre y la otra comentarios con id usuario, idcomentario y el comentario


bueno ahora la consutla depende si ladeja como lo tiene o ordenado como se lo estoy diciendo. Igual de las dos formas va a obtener 3 registros "o el numero de comentarios que tenga"

si eso es para mostrarlo en la web simplemente imprime una vez no mas el nombre del usuario y despues imprime los comentarios

de su forma seria
select nombre,comentario from tabla where nombre='pepito';

de mi forma seria

select Usuarios.nombre,Comentarios.comentario from Usuarios,
Comentarios where Usuarios.id=Comentarios.idusuario and
Usuarios.id="ID USUARIO QUE DESEE"
  #3 (permalink)  
Antiguo 11/03/2010, 08:06
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Si entiendo lo que dices de la tabla de usuario, es mas alli la tengo, pero para relacionar los datos del usuario con otras tablas no utilizo el id de la tabla de usuario, sino el mismo "username" en este ejemplo que puse es el campo "nombre", esto me facilita la programacion de otros modulos que tengo, pero de todos modos, gracias por la explicacion.

Ahora bien, con la consulta que me dices, eso me imprime tres veces el nombre junto con los tres comentarios de este modos

pepito
comentario 1
pepito
comentario 2
pepito
comentario 3

y la manera que quiero que me lo imprima es esta:

pepito
comentario 1
comentario 2
comentario 3

Este es el codigo que utilizo para seleccionar e imprimir los datos segun me pusiste arriba.

Código PHP:
$result=mysql_query("select nombre,comentario from tabla where nombre='pepito' ",$link);

while(
$row mysql_fetch_array($result)) { 
       echo (
'<b>'.$row["nombre"].'</b><br>'.$row["comentario"].'<hr />'); 
        }    
mysql_free_result($result); 
Alguna ayuda por favor,
Gracias de Antemano
  #4 (permalink)  
Antiguo 11/03/2010, 11:29
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Pruebe con esto

Código PHP:
$result=mysql_query("select nombre,comentario from tabla where nombre='pepito' ",$link);
echo 
mysql_result($result,0,"nombre");
while(
$row mysql_fetch_array($result)) { 
       echo (
'</b><br>'.$row["comentario"].'<hr />'); 
        }    
mysql_free_result($result); 
Si no funciona asi tendria que hacer dos consultas independientes una que traiga el nombre del man y otro que traiga los comentarios.


Un consejo no use el nombre real para relaxcionar las tablas use los id
  #5 (permalink)  
Antiguo 11/03/2010, 15:31
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Esta consulta no funciona, es mas tuve que reiniciar mi computadora dos veces porque colgó el internet explorer bien feo.

Aguien mas que tenga una idea de como hacer un query de este tipo sin tener que hacer una consulta dentro de otra ?

saludos
  #6 (permalink)  
Antiguo 11/03/2010, 15:32
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

ah, y gracias helacer por tu tiempo, pero es que me parece que esta consulta la vi por algun post aqui en foros del web, pero la verdad no la encuentro...
  #7 (permalink)  
Antiguo 11/03/2010, 19:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta que no repita el valor de un campo si se encuentra mas de 2 veces

Cita:
Ahora, lo que quiero imprimir cuando muestre los comentarios de jose es que me traiga una sola vez el nombre de jose con todos sus comentarios, en este caso serian los tres comentarios.
Esto sería lo más cercano:

Código MySQL:
Ver original
  1. SELECT nombre, comentario
  2. FROM tabla
  3. WHERE nombre='pepito'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: encuentra, mas, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:46.