- - PR -
update文の作り方
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-14 18:44
次の表があります。
表:T id name 1 aa 2 bb 5 ff 表:M id name col 1 AA null 2 BB null 3 CC null 4 DD null この表からidが共通のレコードに対して表Mのcolにマーク(*)を入れる。 欲しい結果は 表:M id name col 1 AA * 2 BB * 3 CC null 4 DD null SQL文で UPDATE M SET col='*' WHERE M.id = ALL ( SELECT T.id FROM T, M WHERE T.id = M.id) と書いて実行しましたが、何の結果も得られませんでした。 なお、HSQLDB(openoffice Base)を使っています。 | ||||
|
投稿日時: 2008-03-14 18:58
UPDATE M SET col='*' WHERE EXISTS ( SELECT 1 FROM T WHERE T.id = M.id)
じゃないでしょうか。 | ||||
|
投稿日時: 2008-03-14 19:10
自分は次のようにやってみました(HSQLDB)。
| ||||
|
投稿日時: 2008-03-15 14:46
お教えいただきましてありがとうございます。ALLではなく、IN という句をつかうのでした。
また、EXISTS ( SELECT 1 ... という方法があることには、目からウロコでした。 |
1