将文本从一个表附加到另一个表

时间:2014-08-29 07:23:22

标签: mysql sql

得到一个小问题,我无法绕过头。

我有2个表,1个表有一个Youtube链接我需要附加到表2中的另一列。但是并不是每个记录都有一个Youtube链接,这意味着我需要检查两个表中的名称是否是相同(WHERE name1 = name2?)但是如何将文本附加到表2中已有的文本?像这样的东西?

UPDATE table2 SET text2 = (text2 + '/n' + table1.text1) WHERE name1 = name2?

如果有人可以帮助我,那就太棒了!

编辑:

所以我在查询中摸索了一下:

SELECT
'Kleding'.'Naam', 
'jos_virtuemart_products_nl_nl'.'product_name', 
CONCAT_WS('/n', 'jos_virtuemart_products_nl_nl'.'product_desc', 'Kleding'.'Youtube_link')
FROM
    'jos_virtuemart_products_nl_nl' as 't2' 
INNER JOIN 'Kleding' as 't1' 
ON 't2'.'product_name' = 't1'.'Naam';

但是由于一些奇怪的原因,这个查询是不正确的。我找不到为什么不正确。

1 个答案:

答案 0 :(得分:0)

你可以use INNER JOIN in UPDATE

UPDATE
    table2 as t2 INNER JOIN table1 as t1 ON t2.name = t1.name
SET
    t2.text2 = CONCAT_WS('/n', t2.text2, t1.text1);

P.S。:也许'/n'你的意思是'\n'

P.P.S:在进行任何重大数据更改操作之前,我建议你to backup数据库。


<强> UPDv1:

使用SELECT测试您的最终结果集:

SELECT
    `t1`.`name` as `t1-name`,
    `t2`.`name` as `t2-name`,
    CONCAT_WS('/n', `t2`.`text2`, `t1`.`text1`) as `changes`
--  ^ here you will see what comes up
FROM
    `table2` as `t2` INNER JOIN `table1` as `t1` ON `t2`.`name` = `t1`.`name`
-- WHERE possibly more conditions to meet your requirements

如果您使用其他WHERE条件管理te获取正确的结果集,请将它们移至UPDATE语句。