MySQL:从带有标志的表迁移到映射表

时间:2014-11-22 11:36:58

标签: mysql sql

目前我们有一张表'新闻'以下相关领域:

  • ID
  • is_topnews

现在是一个系统范围的表格'类别'介绍了以下相关领域:

  • ID

类别' Top' (用于' topnews'的通用类别)插入了' id' ' 4',您可能会在下面的查询中看到。

相关的映射表' category_mm'包含以下字段:

  • source_table
  • SOURCE_ID
  • CATEGORY_ID

现在我必须在映射表中为所有'新闻'创建条目。有' is_topnews'设置为' 1'。我尝试了以下查询,但没有成功,错误消息说我的语法附近有一个错误' FROM [...]':

INSERT INTO category_mm
      SET category_mm.source_table = 'news',
          category_mm.source_id = news.id, 
          category_mm.category_id = 4 FROM news 
      WHERE news.is_topnews = 1;

这可以用普通(My-)SQL以某种方式完成吗?

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

INSERT INTO category_mm (source_table, source_id, category_id)
VALUES (SELECT 'news', news.id, 4 FROM news WHERE news.is_topnews = 1);

答案 1 :(得分:1)

请试试这个:

INSERT INTO category_mm (source_table, source_id, category_id)
(SELECT 'news', news.id, 4 FROM news WHERE news.is_topnews = 1)