我有兩個表。一種是簡單的字符串/ ID查找:加入SQL更新?
StrTable:
str_key String 0 'a' 1 'b'
其中字符串是唯一的。另一種是比較複雜的,包括共享string_id
ValTable:
str_key other_key val 0 0 1.234 0 1 1.567 1 0 1.890
現在,我想要做ValTable的更新,利用我通過查找到StrTable得到str_key的字符串。簡單的更新將是:
UPDATE ValTable SET val = 2.124 WHERE str_key = 0 AND other_key = 1 LIMIT 1
IF @@ROWCOUNT=0 INSERT INTO ValTable VALUES (0,1,2.124);
那麼我該如何修改這個包括查找帶有一些字符串'a'的str_key?我想我需要一個連接,但我從來沒有參加過更新。或者我可以在我的where子句中添加更多內容嗎?
你沒有DDL爲你的表,但假設str_key和other_key組成你的ValTable的PK,是否有一個原因,你有「極限1」?即使它不是PK,在這裏使用LIMIT似乎很奇怪 – 2009-04-08 11:15:53
我不確定是否會導致整個表掃描沒有限制,但我想它足夠聰明,以知道複合鍵是* *鍵隻影響一行。 – 2009-04-08 13:04:07