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

SELECT con varios nombres de personas

Estas en el tema de SELECT con varios nombres de personas en el foro de Mysql en Foros del Web. Que tal! Mi duda o problema es el siguiente Tengo 4 tablas: datos, familiar, hogar y ninio Quisiera mediante una vista mostrar ejemplo el nombre ...
  #1 (permalink)  
Antiguo 26/03/2011, 11:45
 
Fecha de Ingreso: diciembre-2009
Ubicación: Guayaquil
Mensajes: 16
Antigüedad: 14 años, 4 meses
Puntos: 1
SELECT con varios nombres de personas

Que tal!

Mi duda o problema es el siguiente

Tengo 4 tablas: datos, familiar, hogar y ninio

Quisiera mediante una vista mostrar ejemplo el nombre del ninio, el nombre del padre, de la madre y uno que otro dato

En la tabla Datos guardo las campos comunes: Nombre, apellido, edad, etc
En Familiar guargo un id relacionado a Datos y otros campos caracteristicos de la tabla.
En Hogar guardo 2 id de la tabla Familiar, uno para el padre, otro para la madre.
Por último en la tabla ninio guardo el id del hogar que le corresponde, que de allí arrastraré los datos del padre, madre y el

Como podría hacer para que en una sola sentencia o por medio de la Vista, mostrar los Nombres y apellidos de cada uno..


Se que con JOINS estaría pero la verdad nunca se me había ocurrido hacer algo así directamente desde un SELECT, que sé, si se podría.
  #2 (permalink)  
Antiguo 28/03/2011, 06:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: SELECT con varios nombres de personas

Código MySQL:
Ver original
  1. SELECT H.idHogar,
  2.        (SELECT concat_ws(" ",dP.Nombre, dP.apellido)
  3.               FROM datos dP INNER JOIN familiar fP
  4.                   ON dP.iddatos=fP.idpadre
  5.          WHERE fP.idHogar=H.idHogar) as Padre,
  6.        (SELECT concat_ws(" ",dM.Nombre, dM.apellido)
  7.               FROM datos dM INNER JOIN familiar fM
  8.                   ON dM.iddatos=fM.idmadre
  9.          WHERE fM.idHogar=H.idHogar) as Madre,
  10.          concat_ws(" ",dN.Nombre, dN.apellido) as Ninio
  11. FROM Hogar H INNER JOIN
  12.                  (ninio N INNER JOIN datos dN
  13.                       ON dN.iddatos=N.idninio)
  14.          ON N.idHogar=H.idHogar;

Creo que esto da lo que pides.....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: join, select, view
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.