は、あなたが以下の2つのテーブルがあるとしましょう:T-SQLクエリ
X表
X_IDY_ID_FX_Value
1 1 Q
2 1 G
3 1 T
4 2 W
5 2 K
...
Y表
あなたはそのY親の値がAであるプロパティのみを照会し、次のように(私はより良いクエリがあり実現が、容赦クエリを記述して、それらを更新したいY_IDY_Value
1 A
2 B
...
私):入社YテーブルのY_Value =「A」Xテーブルの行を更新します。
UPDATE X set X_Value = 'O'
WHERE X_ID IN
(
select distinct X.X_ID FROM X
INNER JOIN Y ON X.Y_ID_F = Y.Y_ID
WHERE Y.Y_Value = 'A'
)
私は以前、これはそれが一見言うだろうと思いました。しかし、X.X_IDは、WHERE句で制限されていると思われるものだけでなく、Xテーブルのすべての行を更新するように見えます。 X.X_IDによって、更新された行のセットを制限する際にwhere句の試行を完全に無視するようになります。なぜどんなアイディアですか?
EDIT: 私はそれは私が照会していますデータベース内のテーブルは、私はそれを言い紛らすしようとした例のように単純に関連するとされていない方法とは何かを持っているかもしれないと思います。
これは私がT-SQLを普通に書く方法ですが、既存のクエリが既に書き出されているため、サブ選択で使用され、記述されたとおりに動作することが期待されます。私はいつもサブセレクトを最初に解析することを理解しましたが、おそらく私は間違っています。 –