dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
oracleSQLについてわからないことがあるのでお願いします。
テーブル1
項目イ
項目ロ
項目ハ

テーブル2
項目ハ
項目ニ
項目ホ
項目ヘ

の二つのテーブルを問合せたいのですが、
条件が
テーブル1の項目イ='1'
テーブル1の項目ロ='1'
テーブル2の項目ホ='A'
テーブル2の項目ヘ='10'
テーブル1の項目ハ=テーブル2の項目ハ
としてテーブル1の項目ハと
テーブル2の項目ニ
を取得しようとしています。
但し、項目ハがテーブル2になければ項目ニはnullを返したいのですが、どのような方法があるのでしょうか?
select distinct
a.項目ハ,b.項目ニ
FROM
テーブル1 a ,
テーブル2 b
WHERE
a.項目イ = '1' AND
a.項目ロ = '1' AND
a.項目ハ = b.項目ハ AND
b.項目ホ = '10' AND
b.項目ヘ = 'A'

とやっているのですが、データがうまく出ません。
どなたかご教授お願い致します。

A 回答 (2件)

テーブル1に対し、テーブル2を外部結合する場合は、


whereで指定するテーブル2の全ての要素に、"(+)"を
書いてください。

WHERE
a.項目イ = '1' AND
a.項目ロ = '1' AND
a.項目ハ = b.項目ハ(+) AND
b.項目ホ(+) = '10' AND
b.項目ヘ(+) = 'A'

Oracle9i以降であれば、ANSI構文の外部結合で

select distinct
a.項目ハ,b.項目ニ
FROM テーブル1 a left join テーブル2 b
on (
a.項目ハ = b.項目ハ AND
b.項目ホ = '10' AND
b.項目ヘ = 'A'
)
WHERE
a.項目イ = '1' AND
a.項目ロ = '1'

と書くことも可能です。
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげさまで無事終了しました。
本当に助かりました。

お礼日時:2005/11/22 13:57

a.項目ハ = b.項目ハ



a.項目ハ = b.項目ハ(+)
にしてください。

テーブル1から全レコード出力されます。
ちなみにバージョンがオラクル9i以降でしたら別の書き方もできるようです。
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございました。
おかげさまで無事できました。

お礼日時:2005/11/22 13:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!