2015-10-17 62 views
0

我想从表中复制数据:oc_product_description列:名称到表:Et列:标题,但我只需要复制左侧的125个字符,因为我有限制多少我可以拥有的角色。 我的想法是这样的,但它不工作插入,内部连接和限制字符在一个

Insert into Et (title) 
     INNER JOIN oc_product_description 
      ON oc_product_description.product_id = Et.product_id; 
Select left(col, 125) col 
From oc_product_description.name; 

任何帮助将不胜感激。

+0

我这个解决它:更新Et INNER JOIN oc_product_description ON oc_product_description.product_id = Et.product_id Set Et.title = SUBSTRING(oc_product_description.name,1,125); – Schwann

回答

0

这是我的固定它

Update Et 
    INNER JOIN oc_product_description 
       ON oc_product_description.product_id = Et.product_id 
    Set Et.title=SUBSTRING(oc_product_description.name,1,125); 
+0

尽量不要做你所做的事,好的。一些其他用户可能已经标记了你,并且试图清楚你的要求,很高兴听到你找到解决方案并分享它。 –

+0

@JonathanS。,对不起,不知道正确的做法。但我用你的帮助来解决它。另外我认为,在你的代码中0也应该是1。 – Schwann

1

你也使用SUBSTRING,等效于LEFT这样的:

(查询清洗)

INSERT INTO Et (title) 
SELECT SUBSTRING(oc.name,0,125) 
FROM oc_product_description AS oc 
INNER JOIN Et AS e 
ON oc.product_id = e.product_id; 
+0

使用此时出现以下错误。 #1064 - 你的SQL语法错误;请检查与您的MySQL服务器版本对应的手册,以便在第2行'SELECT SUBSTRING(oc.name,0,125)FROM oc_product_description AS oc IN JOIN'附近使用正确的语法 – Schwann

+0

对不起@Schwann使用INSERT ... SELECT时有没有需要VALUES子句 –

+0

明白了,你是对的。非常感谢你 – Schwann