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:
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.
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.
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!