目前我们有一个表格'news',其中包含以下相关字段:
- 编号
- is_topnews
现在引入了一个系统范围的表"类别",其中包含以下相关字段:
- 编号
类别"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;
这可以以某种方式在普通(我的)SQL中完成吗?
请尝试以下操作:
INSERT INTO category_mm (source_table, source_id, category_id)
(SELECT 'news', news.id, 4 FROM news WHERE news.is_topnews = 1)
试试这个方式:
INSERT INTO category_mm (source_table, source_id, category_id)
VALUES (SELECT 'news', news.id, 4 FROM news WHERE news.is_topnews = 1);