目前我们有一个表“新闻”,其中包含以下相关字段:
- ID
- is_topnews
现在引入了系统范围的表“类别”,其中包含以下相关字段:
- ID
类别“Top”(也用于“topnews”的通用类别)已插入“id”“4”,正如您在下面的查询中看到的那样。
以及具有以下字段的相关映射表“category_mm”:
- 源表
- 来源 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 来完成吗?
最佳答案
请尝试这个:
INSERT INTO category_mm (source_table, source_id, category_id)
(SELECT 'news', news.id, 4 FROM news WHERE news.is_topnews = 1)
关于MySQL:从带标志的表迁移到映射表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076939/