結合で基本的な更新を実行する必要がある場合があります。例えば:
UPDATE t1 SET col1 = 'val1'
FROM table1 as t1
INNER JOIN table2 as t2
ON t1.ID = t2.t1_id
WHERE t2.col3 = 'val3'
これは完全に機能しますが、何らかの理由で、MS SQL Management Studio Express でこれを
UPDATE t1 SET col1 = 'val1'
FROM table1 as t1
INNER JOIN table2 as t2
ON t1.ID = t2.t1_id
CROSS JOIN t2
WHERE t2.col3 = 'val3'
理解できない何らかの理由でクロス結合を追加します。
ここで私の質問は次のとおりです。Management Studio は、これが私が意図したことだと考えるのはなぜですか? それは本物の用途を持っていなければなりません。しかし、いつ、どのように、そしてなぜなのかはわかりません。