2017-09-18 74 views
0

我有兩個表格:材料和顏色;使用另一個表中的值更新某條記錄

我插入顏色,然後我想將其ID添加到材料記錄;

所以我做的:

INSERT INTO colors (color) VALUES ('red'); 

之後,我想更新與指定materials.id材料;(爲前3)。

所以,我需要這樣的東西:

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

回答

1

我覺得你只是錯過了select語句。

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

爲了安全起見,添加'MAX(colors.id)'來解決導致'INSERT'失敗的重複行。 – Stavr00

+0

這是正確的,除非顏色列是唯一的,因爲他的查詢讓我們猜測。但更好的安全比對不起:) – marco

+0

@ Stavr00在SQLite中,這樣一個子查詢[永不失敗](http://www.sqlite.org/lang_expr.html#subq)。 –

相關問題