Cita:
Iniciado por gnzsoloyo
Esa tabla tiene una PK definida por el par de FK, y si le pones una PK propia te arriesgas a que se repitan relaciones ya ingresadas. Porque estas serían válidas en tu modelo.
si, ahora comprendo.
Cita:
Iniciado por gnzsoloyo
¿No se entendió tampoco que debes invocar dos veces la misma tabla con diferentes alias?
Cita:
Iniciado por gnzsoloyo
Necesitas repasar un poco más el modelo E-R en lo relativo a relaciones de cardinalidad N:N, y al caso específico de relación de una entidad con sigo misma.
eso no lo habia entendido bien, y en realidad no sabia como trabaja una relacion de una entidad consigo misma.
la unica modificacion que realice a la consulta fue en el where en donde le agregue || P2.id_persona= $id,
Código MySQL:
Ver original P1.id_persona,
P1.nombre,
P1.apellido
P2.id_persona IdPariente,
P2.nombre NombrePariente,
P2.apellido ApellidoPariente
INNER JOIN CS_personas P1
ON p1.id_persona
=f.id_persona
INNER JOIN CS_personas P2
ON p2.id_persona
=f.id_parentesco
WHERE f.id_persona
=$id
|| P2.id_persona
= $id
porque por ejemplo:
Código MySQL:
Ver originalSELECT P1.id_persona
,P1.nombre
,P1.apellido
,P2.id_persona IdPariente
,P2.nombre NombrePariente
, P2.apellido ApellidoPariente
,fecha
,f.id_usuario
,nombre_u
,apellido_u
FROM CS_familias f
INNER JOIN CS_personas P1
ON P1.id_persona
=f.id_persona
INNER JOIN CS_personas P2
ON P2.id_persona
=f.id_flia
INNER JOIN CS_usuarios u
ON u.id_usuario
= f.id_usuario
WHERE f.id_persona
=21
me arroja esos resultados, pero cuando por al perfil de la persona 29 osea, en el WHERE f.id_persona=29, no me arrojaba nada
+------------+--------+----------+------------+----------------+------------------+
| id_persona | nombre | apellido | IdPariente | NombrePariente | ApellidoPariente |
+------------+--------+----------+------------+----------------+------------------+
| 21 | Elva | Aguer | 29 | Domingo | Garay |
| 21 | Elva | Aguer | 7 | Leonardo Ramon | Garay |
| 21 | Elva | Aguer | 30 | Glady | Garay |
+------------+--------+----------+------------+----------------+------------------+
Código MySQL:
Ver originalSELECT P1.id_persona
,P1.nombre
,P1.apellido
,P2.id_persona IdPariente
,P2.nombre NombrePariente
, P2.apellido ApellidoPariente
FROM CS_familias f
INNER JOIN CS_personas P1
ON P1.id_persona
=f.id_persona
INNER JOIN CS_personas P2
ON P2.id_persona
=f.id_flia
INNER JOIN CS_usuarios u
ON u.id_usuario
= f.id_usuario
WHERE f.id_persona
=29 ||P2.id_persona
=29;
+------------+--------+----------+------------+----------------+------------------+
| id_persona | nombre | apellido | IdPariente | NombrePariente | ApellidoPariente |
+------------+--------+----------+------------+----------------+------------------+
| 21 | Elva | Aguer | 29 | Domingo | Garay |
+------------+--------+----------+------------+----------------+------------------+
bueno despues todo el quilombo que hice, entendi varias cosas, muchas gracias...