• ベストアンサー

INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい

挿入するフィールドの内1つだけを他のテーブルから取ってきた値を使いたいのですが、 insert into table1 (field1, field2, field3) values('a', (select field2 from table2 where field4='xxx'), 'b'); Oracleだと↑の書き方でいけるのですが、PostgreSQL(6.5.3)だとエラーになってしまいます。 2回もDBにアクセスしにいくのはいやなので、1文で書きたいです。上記以外で他の書き方をご存知でしたら教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

ポストグレは使ったこと無いんで違うかもしれませんが、以下のSQLでどうでしょ? insert into table1 (field1, field2, field3) select 'a', field2, 'b' from table2 where field4='xxx';

ro-ro-ro
質問者

お礼

いけました!ありがとうございました。ほんとに。助かりました。 そういう書き方があるのですねえ。

関連するQ&A