繁体   English   中英

使用同一产品ID的其他行中的值更新mysql表字段

[英]update fields mysql table with value from other row for the same product id

我需要用另一行中使用的值更新数据库表。 我有一个包含4000种产品的数据库,每种产品都有3行,每种语言1行(我使用3种语言)。

现在,我需要将荷兰语的产品标题复制到同一产品ID的英文产品行和法文产品行的标题字段中。 英文和弗伦什语中的某些标题字段为空,但所有标题字段都不为空。

所以我有这个字段product_id; language_id; PRODUCT_TITLE

任何人都可以帮助我解决我所有4000种产品所需要的sql吗?

谢谢你,皮特

ps_product_lang是产品表的名称
数据库是MySQL

id_product  int(10) unsigned    NO  PRI NULL     
id_shop int(11) unsigned    NO  PRI 1    
id_lang int(10) unsigned    NO  PRI NULL     
description text    YES     NULL     
description_short   text    YES     NULL     
link_rewrite    varchar(128)    NO      NULL     
meta_description    varchar(255)    YES     NULL     
meta_keywords   varchar(255)    YES     NULL     
meta_title  varchar(128)    YES     NULL     
name    varchar(128)    NO  MUL NULL     
available_now   varchar(255)    YES     NULL     
available_later varchar(255)    YES     NULL     

遵循这些原则的东西应该起作用。

UPDATE ps_product_lang p1
   SET name = 
       (SELECT name
          FROM (SELECT * FROM ps_product_lang) p2
         WHERE p2.`id_product` = p1.`id_product`
           AND p2.`id_lang` = 6)
 WHERE `id_lang` != 6

您需要在其中添加额外的嵌套选择,以防止MySQL报告以下错误:

<BR> 1093您不能在FROM子句中指定目标表“ p1”进行更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM