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

时间:2018-12-29 21:52:18

标签: mysql

我有3张桌子:

tags: ( id, name, sefriendly )
articles_tags: ( id, tag_id, article_id )
articles: ( id, tags, ....)

我使用以下sql来获取特定article_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

我想获取表格文章中所有ID的所有标签,并在articles.tags中存储主题

谢谢

1 个答案:

答案 0 :(得分:1)

检查以下具有联接条件的查询

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;