Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: mashiro en 20 Junio 2017, 21:43 pm



Título: Ayuda Inner Join 3 tablas
Publicado por: mashiro en 20 Junio 2017, 21:43 pm
tengo un problema al unir 3 tablas con llaves foraneas si me pueden ayudar muchas gracias

historia
id_historia:llave identificadora de esta tabla
id_cerdo: foranea
id_estado:foranea
fecha
observacion

en esta tabla que se llama historia debo de traer los valores de id_cerdo y id_estado

espero su colaboracion gracias . y si me pueden explicar seria de gran ayuda  :(


Título: Re: Ayuda Inner Join 3 tablas
Publicado por: ivancea96 en 23 Junio 2017, 16:53 pm
Lo mismo que si fuera unir solo 1 tabla más. Pones un Join con su On por cada nueva tabla.
Y ya está. Luego trabajar con los datos de las tablas como quieras.

Código
  1. SELECT a.nombre, b.nombre, c.nombre
  2. FROM tabla1 AS a
  3. INNER JOIN tabla2 AS b
  4.   ON a.idTabla2 = b.id
  5. INNER JOIN tabla3 AS c
  6.   ON a.idTabla3 = c.id


Título: Re: Ayuda Inner Join 3 tablas
Publicado por: crisoof en 30 Agosto 2017, 16:01 pm
igual lo puedes hacer de esta manera:
Código
  1. SELECT a.nombre, b.nombre, c.nombre
  2. FROM tabla1  a ,tabla2 b, tabla3  c
  3. WHERE a.idTabla2 = b.id
  4. AND a.idTabla3 = c.id
  5.  

tienes que unir las tablas haciendo match entre si por algún valor que sea común entre ellas.

Saludos


Título: Re: Ayuda Inner Join 3 tablas
Publicado por: rubentexas en 13 Septiembre 2017, 23:57 pm
Aunque el resultado puede ser el mismo, utiliza la respuesta de ivancea96

El plan de ejecucion cuando la tabla crezca sera mucho mejor.

Preferi SIEMPRE JOIN sobre cruce cartesiando (dejando el segundo para casos muy exclusivos)