MySQL使用内部联接数据多次更新数据

时间:2019-03-18 14:20:05

标签: mysql sql-update inner-join

我有两个桌子。一个是我要更新的“ new_content ”。第二个是“ 文件”。我想更新new_content表内容列,添加与ID相关的文件。

文件表:

    new_content_id   |   filename
    -------------------------
    1            |   file1
    1            |   file2
    3            |   file3
    3            |   file4
    5            |   file5

new_content表:

    id           |   content
    ----------------------------
    1            |   text1
    2            |   
    3            |   text2
    4            |   text3
    5            |   text4

我希望new_content表是:

    id           |   content
    ----------------------------
    1            |   text1 file1 file2
    2            |   text2
    3            |   file3 file4
    4            |   text3
    5            |   text4 file5

我写了这段代码:

    UPDATE `new_content` n
    INNER JOIN files f
    ON n.id = f.subpage_id
    SET n.content = concat(n.content,'<br>br>',f.filename);

对于每个内容,它仅更新文件中的一行。

结果:

    id           |   content
    ----------------------------
    1            |   text1 file1
    2            |   text2
    3            |   file3
    4            |   text3
    5            |   text4 file5

有人可以帮忙吗?

编辑:

与答案有关,我无法直接更新,但可以编写选择查询并解决问题。谢谢。

    SELECT GROUP_CONCAT(DISTINCT f.filename
    ORDER BY f.filename) FROM`new_content` n
    INNER JOIN files f
    ON n.id = f.subpage_id
    GROUP BY f.subpage_id
    ORDER BY f.subpage_id;

0 个答案:

没有答案