Ayuda Inner Join 3 tablas

Iniciado por mashiro, 20 Junio 2017, 21:43 PM

0 Miembros y 1 Visitante están viendo este tema.

mashiro

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  :(

ivancea96

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 (sql) [Seleccionar]
SELECT a.nombre, b.nombre, c.nombre
FROM tabla1 as a
INNER JOIN tabla2 as b
   ON a.idTabla2 = b.id
INNER JOIN tabla3 as c
   ON a.idTabla3 = c.id

crisoof

igual lo puedes hacer de esta manera:
Código (oracle8) [Seleccionar]

SELECT a.nombre, b.nombre, c.nombre
FROM tabla1  a ,tabla2 b, tabla3  c
WHERE a.idTabla2 = b.id
AND a.idTabla3 = c.id


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

Saludos

rubentexas

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)