Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从两个表中选择并更新第三个表_Mysql - Fatal编程技术网

Mysql 从两个表中选择并更新第三个表

Mysql 从两个表中选择并更新第三个表,mysql,Mysql,我有三张桌子: tags: ( id, name, sefriendly ) articles_tags: ( id, tag_id, article_id ) articles: ( id, tags, ....) 我使用下面的sql获取特定文章id(这里是10)的标记,通过返回用逗号分隔的所有标记名,可以很好地工作 SELECT GROUP_CONCAT( name ) AS art_tags FROM tags, articles_tags WHERE article_id =10 AN

我有三张桌子:

tags: ( id, name, sefriendly )
articles_tags: ( id, tag_id, article_id )
articles: ( id, tags, ....)
我使用下面的sql获取特定文章id(这里是10)的标记,通过返回用逗号分隔的所有标记名,可以很好地工作

SELECT GROUP_CONCAT( name ) AS art_tags
FROM tags, articles_tags
WHERE article_id =10
AND tags.id = tag_id
AND tags_group_id =0
GROUP BY article_id
我想获取表articles中所有ID的所有标记,并将主题存储在articles.tags中


谢谢

用连接条件检查下面的查询

UPDATE articles
JOIN
  (
    SELECT 
      article_id, 
      GROUP_CONCAT( name ) AS art_tags
    FROM tags, articles_tags
    WHERE tags.id = tag_id
      AND tags_group_id =0
    GROUP BY article_id) tin
ON articles.id = tin.article_id
SET tags = tin.art_tags;

你为什么想要这样一个非规范化?正如预期的那样。谢谢。