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

Quien me arma esta sentencia...? pliiiisss :)

Estas en el tema de Quien me arma esta sentencia...? pliiiisss :) en el foro de Mysql en Foros del Web. Hola. Seguro cualquiera de ustedes sabe hacerme este favor. Tengo una tabla con estos datos: id nombre apellido idmatrimonio idmatrimoniopadres Como es una base de ...
  #1 (permalink)  
Antiguo 21/07/2006, 13:02
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Quien me arma esta sentencia...? pliiiisss :)

Hola. Seguro cualquiera de ustedes sabe hacerme este favor.

Tengo una tabla con estos datos:

id
nombre
apellido
idmatrimonio
idmatrimoniopadres

Como es una base de datos genealógica, siempre los padres y esposos estarán tambien ingresados.

Desde un formulario de busqueda en PHP, van a ingresar un apellido. Quiero saber como recoger ese apellido para enviarlo a el script de busqueda y paginación de resultados y POR SOBRE TODO, qué sentencia SQL debo tener para que me traiga:

nombre y apellido, nombre de los padres (es decir, con idmatrimoniopadres debe rastrear a ambos por la tabla) y a su pareja.

Millones de gracias a los inteligentes.
  #2 (permalink)  
Antiguo 24/07/2006, 05:29
ysi
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 17 años, 10 meses
Puntos: 0
Me parece que el planteamiento no es del todo correcto; en lugar de idmatrimoniopadres debería haber idpadre e idmadre. Cuenta que hay madres solteras, divorcios y muchas excepciones que con una sola id para ambos progenitores sería demasiado difícil (o imposible) de manejar.
  #3 (permalink)  
Antiguo 25/07/2006, 19:55
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Si, puede que tengas razón en el caso de madres solteras.
Me lo pidieron asi y yo solo cumplo.
¿Sabés como sería la sentencia?
Gracias!!!
  #4 (permalink)  
Antiguo 26/07/2006, 02:22
ysi
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 17 años, 10 meses
Puntos: 0
Para asegurarte los casos excepcionales deberías hacer una consulta para sacar los datos de la eprsona y después hacer una segunda consulta para sacar lo idmatrimonio=idmatrimoniopadres de la consulta anterior.

Se podría usar un join sobre la misma tabla con idmatrimoniopadres=idmatrimonio, pero en caso de no tener datos de los padres no devolvería ningún registro y no se como se comportaría en caso de, como es nomal, existiesen dos progenitores: Creo que daría dos filas, ambas con los datos del buscado pero una con los del padre y otro con los de la madre. Sería algo como:

SELECT P.nombre AS Nombre, P.apellido AS Apellido, PG.nombre AS NombreProgenitor, PG.apellido AS ApellidoProgenitor FROM tabla P, tabla PG WHERE P.apellido='Apellido_a_buscar' AND PG.idmatrimonio=P.idmatrimoniopadres


Aunque ya te digo, dudo de la corrección de ésto....
  #5 (permalink)  
Antiguo 26/07/2006, 06:16
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Mil gracias.
Ya averigué, y solo ingresan datos completos.

Voy a probar la sentencia, y te cuento.

Muchas MUCHAS gracias!!

  #6 (permalink)  
Antiguo 26/07/2006, 11:13
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Segun veo en tu consulta, usás dos bases de datos, cuando yo tengo solo una.
Mi pregunta ahora es:

Yo hago un SELECT con el apellido que ingresen al buscador (SELECT nombre, apellido FROM tabla WHERE apellido= $busqueda).
Hasta ahi vamos barbaro.

Ahora, cómo hago para agregar dos SELECT mas, que hagan esto:

1) SELECT nombre y apellido FROM tabla, WHERE "acá necesito explicar que el IDMATRIMONIOPADRES de el registro/los registros que encontró con la busqueda sea igual a IDMATRIMONIO de cualquiera de toda la tabla". Y asi traer a sus padres.

2) SELECT nombre y apellido FROM tabla, WHERE "acá necesito explicar que el IDMATRIMONIOPADRES de toda la tabla sea igual al IDMATRIMONIO de el/los registros que trajo la busqueda". Y asi traer a sus hijos.

Espero hayan entendido....no se si es posible trabajar sobre registros obtenidos de una busqueda en el mismo código, o primero debo imprimir los datos con un echo, y al elegir el indicado, realizar las demas busquedas. En este ultimo caso, sí que no tengo idea de como hacer!!!

GRACIAS de nuevoooO!!!!!
  #7 (permalink)  
Antiguo 27/07/2006, 09:37
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola,

siento haber tardado tanto en responder a este post, y al otro [1] en que planteabas lo mismo. Estoy con ysi en que el planteamiento quizás no sea el más correcto pero bueno

Suponiendo que he entendido bien la estructura, la consulta que te da los miembros del matrimonio, y los padres del mismo, a partir del apellido de uno de los conyuges creo que pueda ser esta:
Código:
SELECT a.id, a.nombre, a.apellidos, IF(1=1, 'h', '') as tipo
	FROM nose.nose AS a
	WHERE exists (SELECT distinct idmatrimonio FROM nose.nose WHERE apellidos LIKE '%palabra_a_buscar%' AND idmatrimonio = a.idmatrimonio)
UNION
SELECT a.id, a.nombre, a.apellidos, IF(1=1, 'p', '') as tipo
	FROM nose.nose AS a
	WHERE a.idmatrimonio IN (SELECT distinct idmatrimoniopadres FROM nose.nose WHERE apellidos LIKE '%palabra_a_buscar%')
que produce esta salida de datos:
Código:
id	nombre	apellidos	tipo
3 	berto 	casado		h
4 	laura 	nose 		h
1 	jose 	martinez 	p
2 	ana 	marianan 	p
donde 'h' significa que es un 'hijo' y 'p' que es un padre. Prueba a ver si te puede valer y dinos, ciao

[1] http://www.forosdelweb.com/f86/enganado-por-las-busquedas-fulltext-385102/
__________________
http://www.nosoynadie.net/
  #8 (permalink)  
Antiguo 31/07/2006, 01:54
ysi
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 17 años, 10 meses
Puntos: 0
Sobre la consulta de nosoynadie, de coña, lo deja todo ordenadito y bien.

Sobre la que había puesto antes yo, el join lo hago sobre la misma tabla, la selecciono 2 veecs, una como P y otra como PG, para que se dupliquen los campos. No estoy seguro 100% de que funcione pq no lo he probado, pero no debería haber ningún problema.
  #9 (permalink)  
Antiguo 19/08/2006, 11:54
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Hola NOSOYNADIE!
Tu consulta anduvo muy bien!!!
GRACIAS!
Me trae el apellido que busco, mas padres o hijos, distinguidos con su "H" o "P". El problema es que al usuario buscado lo trae tambien con leyenda. Asi no se sabe quien es quien, y al haber repeticiones de apellidos pero de distintas familias, se hace un embrollo.

¿Se te ocurre alguna forma de hacer que primero me traiga TODOS LOS que tengan el APELLIDO buscado como links, y al elegir el que quiera, ahi me haga la consulta de padres e hijos del mismo?

Sería lo mejorrrrrrrrrrr! Pero es muy difícil creo.

GRACIAS DE NUEVO!
  #10 (permalink)  
Antiguo 21/08/2006, 07:33
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
A ver

Bueno, agregandole la consulta de Gracias!

Última edición por solecoza; 25/04/2008 a las 07:59
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 16:43.