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

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de Mysql en Foros del Web. Hola amigos de foros del web. Tengo la tabla SalonEvaluador que tiene los campos salon y evaluador , que son una llave primaria compuesta. Esta ...
  #1 (permalink)  
Antiguo 20/04/2009, 10:27
eira2meigas
Invitado
 
Mensajes: n/a
Puntos:
Ayuda con consulta

Hola amigos de foros del web.

Tengo la tabla SalonEvaluador que tiene los campos salon y evaluador, que son una llave primaria compuesta.

Esta es la respuesta cuando hago una simple consulta en la base de datos:

salon ------------ evaluador
6 ----------------- carlos
8 ----------------- orlando
9 ----------------- maria
9 ----------------- carmen

Ahora nos podemos dar cuenta que el campo salon tiene dos valores iguales.

Yo necesito que cuando haga la consulta el resultado sea este:


salon ------------ evaluador
6 ----------------- carlos
8 ----------------- orlando
9 ----------------- maria,carmen

Es decir que el campo salon no se muestre repetido y que aparescan todos los evaluadores de ese salon en una sola fila.

Espero que se pueda y que me puedan ayudar.

Gracias.
attt: Un novato en SQL
  #2 (permalink)  
Antiguo 20/04/2009, 10:41
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con consulta

Prueba con:

Código mysql:
Ver original
  1. select salon, group_concat(evaluador separator ',') evaluador
  2. from salonevaluador group by salon;

Espero te sirva.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 20/04/2009, 10:56
eira2meigas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con consulta

Gracias por tu pronta respuesta Huesos52.

Tu respuesta es justo lo que estaba buscando.
Pero no me funciona cuando los valores de evaluador son de tipo bigint.

Es que tengo otra tabla que necesito hacer lo mismo, pero en esta tabla solo estan datos tipo bigint y cuando hago la consulta me sale de la siguiente forma.
suponiendo de que salon y evaluador son de tipo bigint:

salon ------------- evaluador
6 ---------------- [BLOB - 1 Bytes]
8 ---------------- [BLOB - 1 Bytes]
9 ---------------- [BLOB - 3 Bytes]

Espero me puedas ayudar.
Gracias

Última edición por eira2meigas; 20/04/2009 a las 11:18
  #4 (permalink)  
Antiguo 20/04/2009, 12:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con consulta

Acabo de probar y no veo que sea un impedimento tener el campo tipo bigint.
Como lo estas haciendo?
Puedes poner un ejemplo concreto, en que situación te ocurre lo que dices?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 20/04/2009, 12:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta

Tendrás que convertir a cadena de caracteres, pues group_concat no funciona con datos numéricos.

SELECT salon, group_concat(CAST(evaluador AS CHAR) separator ',') evaluador FROM salonevaluador GROUP BY salon;

De todas formas, imagino que ese evaluador bigint es un campo que sirve para relacionar. En lugar de hacer el group_concat de ese campo, hazlo del otro, el campo donde aparece el nombre, aunque eso te obligará a poner el cruce inner join en la consulta... Creo que es lo que sugiere huesos52

Última edición por jurena; 20/04/2009 a las 12:42
  #6 (permalink)  
Antiguo 20/04/2009, 12:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con consulta

Que raro jurena.

Acabo de hacerlo y no me presenta problema por el campo. Debe ser cuestión de la versión de mysql. No noto ninguna diferencia entre varchar y numerico para hacer uso de group_concat

Código consulta:
Ver original
  1. mysql> desc tabla1;
  2. +--------+------------+------+-----+---------+-------+
  3. | Field  | Type       | Null | Key | Default | Extra |
  4. +--------+------------+------+-----+---------+-------+
  5. | id     | int(11)    | YES  |     | NULL    |       |
  6. | nombre | text       | YES  |     | NULL    |       |
  7. | puntos | float      | YES  |     | NULL    |       |
  8. | otro   | bigint(20) | YES  |     | NULL    |       |
  9. +--------+------------+------+-----+---------+-------+
  10. 4 rows in set (0.01 sec)
  11.  
  12. mysql> select *from tabla1;
  13. +------+----------------------+--------+-------------+
  14. | id   | nombre               | puntos | otro        |
  15. +------+----------------------+--------+-------------+
  16. |    2 | daniela              |    150 | 23245353454 |
  17. |    3 | danielito            |     80 | 23245353454 |
  18. |    4 | danielita            |     60 | 23245353454 |
  19. |    5 | [email][email protected][/email] |     30 | 23245353454 |
  20. |    5 | [email][email protected][/email] |     30 | 23245353454 |
  21. |    6 | daniela              |    180 | 23245353454 |
  22. |    5 | huesos               |     30 |         256 |
  23. +------+----------------------+--------+-------------+
  24. 7 rows in set (0.00 sec)
  25.  
  26. mysql> select id, group_concat(otro separator ',') from tabla1 group by id;
  27. +------+----------------------------------+
  28. | id   | group_concat(otro separator ',') |
  29. +------+----------------------------------+
  30. |    2 | 23245353454                      |
  31. |    3 | 23245353454                      |
  32. |    4 | 23245353454                      |
  33. |    5 | 23245353454,23245353454,256      |
  34. |    6 | 23245353454                      |
  35. +------+----------------------------------+
  36. 5 rows in set (0.01 sec)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 20/04/2009, 13:24
eira2meigas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con consulta

Gracias por contestar.

Al parecer es un problema con una variable del de el phpMyAdmin.
Lo he probado directamente en mi pagina y no hubo problemas por el tipo de datos del campo.

gracias a los dos y gracias a todo el equipo de forosdelweb.
  #8 (permalink)  
Antiguo 20/04/2009, 13:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta

Llevas razón, huesos,
en consola no da problemas. Sin embargo, en PHPMyAdmin sí, al menos en mi versión, la 5.027 community...
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 20:23.