私は2つのテーブルを持っています。一つは単純な文字列/ 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
を、私はStrTable経由str_keyを取得するためにルックアップ文字列を使用して、ValTableの更新をしたいです。
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を仮定して、あなたのValTableのためのPKを作るother_keyしていない、あなたが「LIMIT 1」を持っている理由はありますか?たとえそれがPKではないとしても、ここではLIMITを使用するのが奇妙に思えます –
テーブル内の制限がなくてもテーブル全体を掃除するかどうかはわかりませんでしたが、複合キーが* *キーはその行にのみ影響します。 –