¿Join entre tres tablas?

Iniciado por javirk, 12 Febrero 2012, 14:40 PM

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

javirk

Hola, estoy haciendo una base de datos que tiene tres tablas:

  • Usuarios
  • Pelis
  • Usuario_peli

En la tabla Usuarios tengo los datos de los usuarios, en la de pelis, los datos de las películas, y en la de Usuario_peli, el Id_usuario de un usuario, y el id_peli, de la tabla de películas. Lo he puesto en una tabla a parte por ser una relación varios a varios. He hecho una consulta con un WHERE:
Código (sql) [Seleccionar]
SELECT * FROM usuario_peli a, pelis b, usuarios c WHERE a.id_usuario = c.id_usuario AND a.id_peli = b.id_peli

Mi pregunta es, ¿cómo se podría hacer esto con un JOIN?

Un saludo.

‭lipman

Para hacer un Join necesitas que haya un campo en común (aunque no se llame necesariamente igual). En caso de no haberlo, se hace un producto cartesiano (todos x todos) lo cual si la tabla es grande, puede consumir bastante recursos.

Hacer un JOIN entre 3 tablas es igual que entre 2.

Código (sql) [Seleccionar]
SELECT * FROM (TABLA1 NATURAL JOIN TABLA2) NATURAL JOIN TABLA3

En función de si el campo se llama igual, usas el NATURAL JOIN, o usas el JOIN ON, o JOIN USING. Te recomiendo que busques acerca de ellos.

Un saludo!