Sql 使用另一个表中的值更新某些记录

Sql 使用另一个表中的值更新某些记录,sql,sqlite,Sql,Sqlite,我有两张桌子:材料和颜色 我插入颜色,然后我想将其id添加到物料记录中 因此,我: INSERT INTO colors (color) VALUES ('red'); 之后,我想用指定的材料更新材料。例如3 所以我需要像这样的东西: UPDATE materials SET material='glass',price=100,color_id=(colors.id WHERE color='red') WHERE id=3; 我想你错过了select语句 UPDATE material

我有两张桌子:材料和颜色

我插入颜色,然后我想将其id添加到物料记录中

因此,我:

INSERT INTO colors (color) VALUES ('red');
之后,我想用指定的材料更新材料。例如3

所以我需要像这样的东西:

UPDATE materials 
SET material='glass',price=100,color_id=(colors.id WHERE color='red')
WHERE id=3;

我想你错过了select语句

UPDATE materials 
SET material='glass',price=100, color_id=(select colors.id WHERE 
color='red')
WHERE id=3;

为了安全起见,添加MAXcolors.id来处理重复的行,这将导致插入失败。这是正确的,除非颜色列是唯一的,因为他的查询允许猜测。但安全总比抱歉好:SQLite中的@Stavr00,这样的子查询.Color列是唯一的。它可以工作,但需要一些编辑:color\u id=从color=red的颜色中选择id;