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

2 claves foraneas en dos tablas

Estas en el tema de 2 claves foraneas en dos tablas en el foro de Mysql en Foros del Web. Hola Buenas Tardes: Voy a colocar un ejemplo más básico pero me servirá para aclarar la consulta. Tengo dos tablas: personas relacion la tabla personas ...
  #1 (permalink)  
Antiguo 25/05/2011, 17:04
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Pregunta 2 claves foraneas en dos tablas

Hola Buenas Tardes:

Voy a colocar un ejemplo más básico pero me servirá para aclarar la consulta.

Tengo dos tablas:
personas
relacion

la tabla personas contiene 3 campos:
- id por persona
- nombre de la persona
- edad persona (no tiene importancia este campo)

la tabla relacion consta de 4 campos:
- idrelacion que es un id autoincremental
- persona1 (es la llave foránea donde me marca el id de algun registro personas)
- persona2 (es la llave foránea donde me marca el id de algun registro personas que no sea persona1)
- relacion no tiene mayor importancia pero es para definir por ejemplo: NINGUNA, PADRE, HIJO, ETC.

la tabla relacion la tengo con UPDATE ON CASCADE y DELETE ON CASCADE


mi consulta es:
¿esta bien hecha la estructura?

si estubiera bien entonce y como ejemplo
suponiendo que tengo los siguientes datos en tabla personas

idxxNombrexxxxEdad
1xxJuan xxxxxxx40
2xxMariaxxxxxxx35
3xxLuisxxxxxxxx31
4xxJosexxxxxxxx9


y estos datos en la tabla relacion

idrelacionxxpersona1xxpersona2xxrelacion
1xxxxxxxxxx1xxxxxxxxxx2xxxxxxxxxHERMANA
2xxxxxxxxxx1xxxxxxxxxx3xxxxxxxxxNINGUNA
3xxxxxxxxxx1xxxxxxxxxx4xxxxxxxxxHIJO
4xxxxxxxxxx2xxxxxxxxxx4xxxxxxxxxSOBRINO
5xxxxxxxxxx2xxxxxxxxxx3xxxxxxxxxNINGUNA

como deberia hacer un SELECT (lo manejar con VIEWS luego) para poder consultar por una persona, y que me muestre todas las personas relacionadas con ella, por decir:

busco por Juan:

y que me arroje:

1) Juan (EL MISMO)
2) Maria (HERMANA)
3) Jose (HIJO)

gracias por cualquier ayuda recibida.

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #2 (permalink)  
Antiguo 25/05/2011, 18:00
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: 2 claves foraneas en dos tablas

me contesto solo

SELECT nombre,relacion FROM personas INNER JOIN relacion ON personas.id=relacion.persona2 WHERE persona1=1

obtengo el Id de Juan que es 1 y me lista los resultados, salvo el primero que aparecia Juan.

ahora para buscar varias personas y sus relaciones...otro dolor de cabeza

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 25/05/2011, 21:05
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: 2 claves foraneas en dos tablas

hay alguna forma de mejorar esa estructura, agregando una tabla? o algo mas simple?

si alguien tiene sugerencias...estoy con la masa encefálica a full y ya no pienso bien.

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip

Etiquetas: foreignkey, tables
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 21:19.