MySQL - Query inserta no inserta el valor correcto [mySQL]

   
Vista:

Query inserta no inserta el valor correcto [mySQL]

Publicado por Armonick (5 intervenciones) el 18/07/2012 10:45:26
Hola

Antes de nada gracias por la ayuda.

Tengo la siguiente sentencia:

1
SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = ( SELECT distinct tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion ='Leer' ) AND p.perfil ='Editor'


En este caso me devuelve como resultado el valor 6. Esta sentencia devuelve siempre un integer.



He creado la tabla TEMP con un único campo de tipo INT, id_perfil.

Bien, si yo intento insertar el valor de la sentencia anterior de esta manera:

1
2
3
4
INSERT INTO TEMP
(id_perfil)
VALUES
("SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = ( SELECT distinct tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion ='Leer' ) AND p.perfil ='Editor'")


No da error, incluso inserta un registro, pero en el campo id_perfil me pone como valor 0, cuando en este caso debería ser 6.



No sé porque ocurre.



Podrías echarme un cable?



Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Query inserta no inserta el valor correcto [mySQL]

Publicado por xve (899 intervenciones) el 18/07/2012 10:55:25
Hola Armonick, lo que estas haciendo es intentar insertar una cadena SQL... elimina las comillas dentro de los parentesis.... prueba así:

1
2
3
4
5
6
7
8
INSERT INTO TEMP
(id_perfil)
VALUES
(
    SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = (
        SELECT distinct tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion ='Leer'
    ) AND p.perfil ='Editor'
)

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query inserta no inserta el valor correcto [mySQL]

Publicado por Armonick (5 intervenciones) el 18/07/2012 11:23:12
Lo he probado, pero me aparece el siguiente error:

debug : #1064 - 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 'SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp' at line 1{"success":false,"error":"
#1064 - 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 'SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp' at line 1<\/div>"}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query inserta no inserta el valor correcto [mySQL]

Publicado por Armonick (5 intervenciones) el 18/07/2012 11:26:12
Gracias por contestarme, que se me olvidó decirlo :)

También lo he probado con comillas simples, pero me da error.

No sé, no veo cual puede ser el error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Query inserta no inserta el valor correcto [mySQL]

Publicado por xve (899 intervenciones) el 18/07/2012 13:13:55
Hola Armonick, ejecutando directamente:
1
2
3
SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = (
        SELECT distinct tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion ='Leer'
    ) AND p.perfil ='Editor'

funciona correctamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Query inserta no inserta el valor correcto [mySQL]

Publicado por Armonick (5 intervenciones) el 18/07/2012 14:13:32
Hola xve,

Si, si ejecuto la sentencia directamente si que me muestra el resultado correctamente.

Gracias por tu implicación.

A ver si al final damos en el clavo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Query inserta no inserta el valor correcto [mySQL]

Publicado por xve (899 intervenciones) el 19/07/2012 09:03:58
Hola Armonick, lo he estado mirando y hacemos un error, los valores no hay que ponerlos entre paréntesis, ni poner el texto VALUES...
Así te debería de funcionar:
1
2
3
4
5
INSERT INTO TEMP
(id_perfil)
    SELECT distinct p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = (
        SELECT distinct tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion ='Leer'
    ) AND p.perfil ='Editor'

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar