No me sale INNER JOIN con condición

Iniciado por javirk, 5 Abril 2012, 12:22 PM

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

javirk

Hola, tengo dos tablas una se llama "users_pelis", y la otra "users", en la tabla "users" se encuentran los datos de los usuario, con su id_usuario; y en la tabla users_pelis, se relaciona cada id_usuario con un id de otra cosa, bueno, pues a mí me gustaría sacar todos los ids de la otra cosa que pertenecieran a un mismo usuario, y he hecho un INNER JOIN:
Código (sql) [Seleccionar]
select users_pelis.id_peli from users_pelis inner join users on users_pelis.id_usuario = users.id_usuario

Pero eso me saca todos los ids que están relacionados en la otra tabla, sin importar con quién, como es lógico. Entonces he decidido hacer:
Código (sql) [Seleccionar]
select users_pelis.id_peli from users_pelis inner join users on users_pelis.id_usuario = users.id_usuario WHERE users.id_usuario = "miemail"

donde "miemail" es el email que tengo que poner, que por razones varias no voy a poner. Pero con esto me da un error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@hotmail.com LIMIT 0, 30' at line 1

Y ahí me he quedado, sin saber qué hacer.

Un saludo y gracias de antemano!

Runex

Cita de: javirk en  5 Abril 2012, 12:22 PM
Hola, tengo dos tablas una se llama "users_pelis", y la otra "users", en la tabla "users" se encuentran los datos de los usuario, con su id_usuario; y en la tabla users_pelis, se relaciona cada id_usuario con un id de otra cosa, bueno, pues a mí me gustaría sacar todos los ids de la otra cosa que pertenecieran a un mismo usuario, y he hecho un INNER JOIN:
Código (sql) [Seleccionar]
select users_pelis.id_peli from users_pelis inner join users on users_pelis.id_usuario = users.id_usuario

Pero eso me saca todos los ids que están relacionados en la otra tabla, sin importar con quién, como es lógico. Entonces he decidido hacer:
Código (sql) [Seleccionar]
select users_pelis.id_peli from users_pelis inner join users on users_pelis.id_usuario = users.id_usuario WHERE users.id_usuario = "miemail"

donde "miemail" es el email que tengo que poner, que por razones varias no voy a poner. Pero con esto me da un error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@hotmail.com LIMIT 0, 30' at line 1

Y ahí me he quedado, sin saber qué hacer.

Un saludo y gracias de antemano!

Revisando la consulta, me fijo en 2 errores.

1-> Si quieres conseguir el id del usuario donde el email coincide con el tuyo, esta parte de la consulta estaría mal:

Código (sql) [Seleccionar]
WHERE users.id_usuario = "miemail"

users.id_usuario supongo que será una variable integer primary key auto_increment, por tanto no admite variables char. Tendrías que cambiar users.id_usuario por el campo donde almacenes los emails, que podría ser: users.email = "miemail".

2-> Ninguna consulta que has puesto está cerrada es decir, no finalizas con ';'.

Quedaría así:

Código (sql) [Seleccionar]
SELECT users_pelis.id_peli FROM users_pelis INNER JOIN users ON users_pelis.id_usuario = users.id_usuario WHERE users.email = "miemail";

Eso es todo :).

Un saludo y espero haber sido de ayuda :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

javirk

Ala! El problema era el primero, lo segundo es que simplemente se me olvidó escribirlo, gracias!

Runex

De nada javirk para eso estamos en el foro :).

Si necesitas cualquier cosa aquí estamos :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".