-1
我有兩個表:LABELS
表有兩列oldLabel
和label
和其他表INVENTORY
具有包含列LABELS.oldLabel
的值的列label
。更新或者不列,如果選擇返回記錄
我想用LABELS.label
的值更新列INVENTORY.label
的值。我想:
UPDATE INVENTORY
SET label = (SELECT label FROM LABELS AS T2 WHERE T2.oldLabel = INVENTORY.label);
其作品,但如果SELECT
沒有返回值,則INVENTORY.label
得到一個空值。如何更改上述查詢,因此當SELECT
未返回記錄時,請不要更新該記錄!
我找到了一個方法,我用一些JAVA
實現..
sq = "UPDATE INVENTORY "
+ "SET label = ? WHERE label = ?";
stm = c.prepareStatement(sq);
for (Label label : labels) { //labels is an arrayList which contains both values
stm.setString(1, label.getLabel());
stm.setString(2, label.getOldLabel());
result = stm.executeUpdate();
}
不過,我能做到這一點,只有SQL代碼?