SQLについての質問です。

SELECT COUNTした結果が、1以外の場合UPDATEするというSQL文を作りたいのです。

以下のようにしましたが、うまくできません。(更新対象行がありませんのエラーになります。更新対象行がない場合はUPDATEしないようにしたいです。)
よろしくお願いします。

update tab_a
set col_a = 1
where
1 <> (select count(*)
from tab_a, tab_b
where tab_a.id = tab_b.id and
tab_a.err = 1)

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2007/10/23 07:20:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント60pt

update tab_a

set col_a = 1

where

1 < (select count(*)

from tab_a, tab_b

where tab_a.id = tab_b.id and

tab_a.err = 1)

1以外ではなく 1より大きい としたらどうでしょう?

0件の場合は UPDATEできないでしょう。

id:kuri6

早速のご回答ありがとうございます。

>1以外ではなく 1より大きい としたらどうでしょう?

>0件の場合は UPDATEできないでしょう。

確かにそうですね。

…しかし、仕様では1以外ならあるカラムを更新するだったと思いますので、もう一度仕様を確認します。

2007/10/16 08:01:54

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 きゃづみぃ 13539 10064 1198 2007-10-16 18:35:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません