- - PR -
SELECT結果でのUPDATE
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-23 02:06
いつも参考にさせていただいています。
複数カラムを取得するSELECT結果でのUPDATEをしたいと思っています。 で、下のようなSQLを考えてみましたが、先輩にこれじゃダメだと言われてしまいました。 結果を見る限りでは大丈夫そうなんですが。
私には何が問題か分からなかったので別の先輩に相談した所、下記のSQLを教えてくれました。
先輩は、テーブルAとちゃんとIDでつながないと正しく動作しないから こうした方が言いと言いました。 そこでみなさんに質問です。
以上、よろしくお願いします。 Oracle9iを使用しています。 [ メッセージ編集済み 編集者: トロ 編集日時 2005-01-23 02:17 ] | ||||||||
|
投稿日時: 2005-01-23 03:24
UPDATE文自体のWHERE句が無いので、Aに存在するIDがBのテーブルに見つからない場合、そのIDを持つAのレコードがNULLで更新されます。
そういう仕様なら問題ありませんが、もしこれを避けたければ
とする必要があります。 # …多分。今実験できないので推測です。 | ||||||||
|
投稿日時: 2005-01-24 09:23
るぱんです。
ちゃんと主キーがあって(ID)、 それで一意になっているなら問題は起こらなさそうです。 でも、僕が上の立場で下の人を教えるのであれば 同じことをしますね。 SQLのコードを書く手間を惜しんで、 どんな状況にでも対応できるコードが書けないとなると、 問題になりはしないですかね?<あとあと | ||||||||
|
投稿日時: 2005-01-24 09:47
確認しました。やはりBのテーブルにIDが足りない場合はNULLで更新されます。
というわけで、
そういう動作が正しければトロさんが正解、誤りなら先輩が正解… なんですが、その先輩の教えたSQLはちょっとどうかと… | ||||||||
|
投稿日時: 2005-01-24 10:40
回答をくださった方、ありがとうございました。
前川さんの教えてくださった、
で先輩からOKがもらえました。 土曜に休日出勤して丸1日考えたのに分からずとっても困っていたので、本当に助かりました。 また分からない事があったら質問すると思います。 その時は、よろしくお願いします。 |
1