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

[SOLUCIONADO] Consulta que traiga varios datos de otra tabla en una misma fila

Estas en el tema de Consulta que traiga varios datos de otra tabla en una misma fila en el foro de Mysql en Foros del Web. Hola, necesito ayuda con esto. Tengo las siguientes tablas: La primer tabla (usuarios) guarda los datos de usuarios, la segunda (telefonos) posee los teléfonos de ...
  #1 (permalink)  
Antiguo 14/06/2013, 12:03
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Exclamación Consulta que traiga varios datos de otra tabla en una misma fila

Hola, necesito ayuda con esto. Tengo las siguientes tablas:



La primer tabla (usuarios) guarda los datos de usuarios, la segunda (telefonos) posee los teléfonos de esos usuarios, y están relacionadas por el campo id_usuario. Puede suceder que cada usuario tenga un teléfono, mas de uno o ninguno.

Necesito que la consulta me traiga los datos de la segunda tabla dentro del mismo registro de cada usuario, de esta forma:



También podría ser de estas otras formas:



Agradeceré cualquier ayuda o pista que me puedan brindar.


Saludos...


Eduardo
  #2 (permalink)  
Antiguo 14/06/2013, 13:39
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta que traiga varios datos de otra tabla en una misma fila

Hola educlon:

Checa la función GROUP_CONCAT con un LEFT JOIN entre las tablas...

http://dev.mysql.com/doc/refman/5.0/...functions.html

Si tienes dudas, pregúntale a San GOOGLE acerca de algunos ejemplos de cómo trabaja esta función.

Saludos
Leo.
  #3 (permalink)  
Antiguo 17/06/2013, 08:54
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Consulta que traiga varios datos de otra tabla en una misma fila

Muchísimas gracias leonardo_josue, busqué más información sobre esa función, la implementé y anduvo perfecto. Para los que busquen un solución similar, les paso la que yo utilicé:

Código:
SELECT usuarios.*, GROUP_CONCAT(telefonos.telefono) AS telefonos FROM usuarios JOIN telefonos ON telefonos.id_usuario = usuarios.id_usuario GROUP BY usuarios.id_usuario
Y el resultado es el que yo quería:



Espero que a alguien mas le sirva.

Saludos...
  #4 (permalink)  
Antiguo 17/06/2013, 11:49
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta que traiga varios datos de otra tabla en una misma fila

Hola de nuevo educlon:

Sólo un pequeño detalle que también mencioné en mi post anterior... el JOIN, tal como lo estás colocando, es restrictivo, esto quiere decir que es necesario que existan registros en ambas tablas para que arroje resultados, pero ¿Qué pasa si un usuario NO TIENE NINGÚN TELÉFONO?... la consulta, tal como la pones NO PRESENTARÁ ESE USUARIO... por eso decía que usaras un LEFT (o RIGTH) JOIN, para evitar este contratiempo. Ojo con eso

Saludos
Leo.

Etiquetas: repetidos, select, tablas
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 09:09.