SQL - Modificar campos de tablas usando una consulta

   
Vista:

Modificar campos de tablas usando una consulta

Publicado por findpops.com (1 intervención) el 17/05/2017 12:49:52
Buenas, estoy intentando modificar los campos de una tabla en base a una consulta que ya tengo:

1
2
3
4
5
6
7
8
9
10
11
SELECT `fpop_product`.`id_product`  AS `id_product`,
 `fpop_product`.`reference`  AS `reference`,
 `fpop_product_lang`.`name`  AS `name`,
 `fpop_image_shop`.`id_image`  AS `id_image`,
 `fpop_image_lang`.`legend` AS `alt`
FROM  `fpop_product`
 LEFT JOIN `fpop_product_lang` ON (`fpop_product_lang`.`id_product` = `fpop_product`.`id_product` AND `fpop_product_lang`.`id_lang` = 3 AND `fpop_product_lang`.`id_shop` = 1)
 LEFT JOIN `fpop_image_shop` ON (`fpop_image_shop`.`id_product` = `fpop_product`.`id_product` AND `fpop_image_shop`.`cover` = 1 AND `fpop_image_shop`.id_shop = 1)
 LEFT JOIN `fpop_image_lang` ON (`fpop_image_lang`.`id_image` = `fpop_image_shop`.`id_image` AND `fpop_image_lang`.`id_lang` = 3)
 LEFT JOIN `fpop_image` ON (`fpop_image`.`id_image` = `fpop_image_shop`.`id_image`)
 WHERE 1


He metido este comando pero me da error:

1
2
3
4
5
6
7
8
9
10
11
UPDATE `fpop_image_lang` SET `legend`=`fpop_product_lang`.`name` WHERE repclie IN(SELECT `fpop_product`.`id_product`  AS `id_product`,
 `fpop_product`.`reference`  AS `reference`,
 `fpop_product_lang`.`name`  AS `name`,
 `fpop_image_shop`.`id_image`  AS `id_image`,
 `fpop_image_lang`.`legend` AS `alt`
FROM  `fpop_product`
 LEFT JOIN `fpop_product_lang` ON (`fpop_product_lang`.`id_product` = `fpop_product`.`id_product` AND `fpop_product_lang`.`id_lang` = 3 AND `fpop_product_lang`.`id_shop` = 1)
 LEFT JOIN `fpop_image_shop` ON (`fpop_image_shop`.`id_product` = `fpop_product`.`id_product` AND `fpop_image_shop`.`cover` = 1 AND `fpop_image_shop`.id_shop = 1)
 LEFT JOIN `fpop_image_lang` ON (`fpop_image_lang`.`id_image` = `fpop_image_shop`.`id_image` AND `fpop_image_lang`.`id_lang` = 3)
 LEFT JOIN `fpop_image` ON (`fpop_image`.`id_image` = `fpop_image_shop`.`id_image`)
 WHERE 1);
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

Modificar campos de tablas usando una consulta

Publicado por leonardo_josue (985 intervenciones) el 17/05/2017 16:01:05
Hola findpops.com:

Si no fuera mucha molestia, podrías al menos decirnos qué error es el que te está marcando??? es que hay un pequeño/gran problema y es que en este foro lamentablemente no hay adivinos... Ojo con eso.

también nos serviría mucho que nos digas qué es lo que intentas hacer, igual y para ti puede resultar muy claro tu problema, pero nosotros ni conocemos tu modelo de tablas, ni tenemos datos de ejemplo, ni sabemos qué regresa tu consulta y mucho menos qué es lo que quieres hacer con esa consulta...

Finalmente te comento que tienes un Horror (perdón, un error) de sintaxis: cuando utilizas el operador IN con una subconsulta, en el SELECT debes incluir UNO Y SÓLO UN CAMPO que es precisamente contra el que quieres comparar:

CORRECTO:

1
2
3
...
campo IN (SELECT campo FROM ...)
...

INCORRECTO:

1
2
3
...
campo IN (SELECT campo1, campo2, .... , campo_n FROM ...)
...

Saludos
Leo.
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