質問: sqlについての質問 9iです。お世話になります。 次のsqlをどう書けばよいのか分かりませんのでご教示願います。 【テーブルa】 id code 1 1 2 2 3 (null) ... 【マスタテーブルb】 code name 1 あ 2 い 【ほしい結果】 id name 1 あ 2 い 3 (null) ... 要するにcodeがnullの所はnameをnullにして、nullでないところは、マスタから引っ張ってくるということがやりたいです。 宜しくお願いします。
回答: 普通は外部結合を使いますが、次のような書き方もあります。 select a.id, ( select b.name from b where b.code = a.id) as name from a; 3行目のところがスカラー副問い合わせという書き方で、マスターテーブルから1カラム1つの値だけ取りたい場合(かつ、無い場合はnullで良い場合)に使えるやり方です。 結合するテーブル数が多い場合などに、結合テーブル数増加を防ぐことができるので特に有効です。