Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - relacionar dos tablas en mysql
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information relacionar dos tablas en mysql

Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
jecavi20
Usuario


Registrado: Sep 04, 2013
Mensajes: 3

Asunto: relacionar dos tablas en mysql Responder citando

buenas noches tengo un problema de relaciones entre dos tablas y soy muy novato en el tema y espero que en este foro de profesionales me ayuden a resolverlo gracias de antemano

estoy haciendo un sistema de un censo donde las personas se registran con nombre apellido cedula y registran a sus familiares con sus nombre apellidos y su parentesco con el jefe familiar, tengo una tabla para el jefe familiar y otra para los parientes

la tabla del jefe familiar

id_jefefamiliar
cedula
nombre
apellido

y la tabla de los prientes

id_pariente
cedula
nombre
apellido
tipo_parentezco

pero no se como relacionarlos para que a la hora de la consulta se relacionen los parientes con su respectivo jefe familiar ya que los id de las dos tablas son autoincrementales y no se repiten, como podria hacer la relacion de un jefe familiar a muchos parientes

muchas gracias de antemano por su colaboracion
MensajePublicado:
Mar Sep 03, 2013 10:50 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: relacionar dos tablas en mysql Responder citando



Anuncios



Te recomendamos, si te es posible que cambies la estructura de las tablas, en vez de tener dos, una para los jefes y otra para las personas, sería más eficiente que tuvieras solo una para jefes y personas, la estructura sería:

Tabla: personas
Campos:
id_persona
cedula
nombre
apellido
id_jefefamiliar
tipo_parentezco

En el campo "id_jefefamiliar" guardarás el "id_persona" de la persona que sea jefe de esta. Así tendrás todo en una tabla y no duplicarás datos innecesarios.

En este caso la consulta SQL para obtener todos los parientes de un jefe familiar sería:

Código:

select *
from personas
where id_jefefamiliar = XXXX;


Los jefes de familia no tendrán nada en el campo "id_jefefamiliar" salvo que quisieras "anidar" familias y que un jefe familiar a su vez pudiera ser miembro de otra familia y tuviera un jefe familiar por encima, pero no creo que sea tu caso.
MensajePublicado:
Jue Sep 05, 2013 7:10 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: relacionar dos tablas en mysql Responder citando



Anuncios



Si a la fuerza tienes que usar esas dos tablas que nos comentas, para relacionarlas necesitas añadir el campo "id_jefefamiliar" a la tabla de los parientes:

id_pariente
id_jefefamiliar
cedula
nombre
apellido
tipo_parentezco

En ese campo "id_jefefamiliar", que es clave foránea de la tabla "jefe familiar" guardarás el id_jefefamiliar de la tabla "jefe familiar" que es jefe de familia de dicho pariente.

De esta forma, una consulta SQL para mostrar los parientes que tienen un jefe familiar (con el nombre de este) podría ser:

Código:

select p.*, j.nombre Jefe_Familia
from parientes p, jefes j
where p.id_jefefamiliar = j.id_jefefamiliar and j.id_jefefamiliar = XXX;


Donde "XXX" será el id del jefe de familia del que quieras mostrar los parientes.

Una consulta equivalente a la anterior usando Inner Join sería:

Código:

select p.*, j.nombre Jefe_Familia
from parientes p
inner join jefes j on p.id_jefefamiliar = j.id_jefefamiliar
where j.id_jefefamiliar = XXX;
MensajePublicado:
Jue Sep 05, 2013 7:20 am
Top of PageVer perfil de usuario
jecavi20
Usuario


Registrado: Sep 04, 2013
Mensajes: 3

Asunto: Responder citando

para guardar el id en la tabla parientes id_jefefamiliar podria usar el mysqli_insert_id() lo guardo en una variable y despues la variable la inserto en el insert into table normalmente como si fuera la variable de un registro cierto?
MensajePublicado:
Vie Sep 06, 2013 6:46 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A