[pgsql-jp: 36821] Re: WHEREにSELECTふたつ

河本陽一 komoto.yoichi @ kcc.co.jp
2006年 3月 3日 (金) 20:02:12 JST


こうもとです。

Naoki.Kuniyoshi. さんの書いたこと:
>  これだと、1件のみ対象で、それ以上はエラーになりませんか?
>  Oracleだとその場合、エラーになります。

 PostgreSQLでは、対象が複数の場合でも大丈夫でした。

# UPDATE t1 SET f3=f3+1 where (f1)=(SELECT f1 FROM t2 WHERE f5='a02');
UPDATE 2

>  そういう場合は、inを使えば対応できるかと。
> 
> UPDATE t1 SET f3 = 10
> WHERE (f1, f2) in (SELECT f1, f2 FROM t2 WHERE f5='a02');

 PostgreSQLでも、動作しました。

# UPDATE t1 SET f3=f3+1 where (f1) in (SELECT f1 FROM t2 WHERE
f5='a02');
UPDATE 2

======================================================================
河本陽一(こうもとよういち)
mailto:komoto.yoichi @ kcc.co.jp




pgsql-jp メーリングリストの案内