重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Left join と Right join の両方の機能をもった、一つのSQL文はどうしたらいいのでしょうか。
つまり、Left join は左側のテーブルを基準とし右にないものでも右の部分はNUllのままで抽出しますが、双方にあるものは統合して出力し、片方に無いものは、ない部分だけNullで、とにかく両方を抽出するというSQL文が書けないかと思案しています。

A 回答 (2件)

full outer joinではダメなのでしょうか。

この回答への補足

postgresqlでfull outer join を使うと同じレコードが複数行抽出されてしまいます。
また、お詫びですが、まったく同じ趣旨の質問が過去にあり、回答されていました。
union を使うとのことで、これから試してみたいと思います。
ありがとうございました。

補足日時:2011/02/25 11:14
    • good
    • 0
この回答へのお礼

いろいろ試していろいろな人に聞いて、やっとできました。

SELECT A.*,B.*
FROM (SELECT * FROM Atable WHERE 条件A) AS A
FULL OUTER JOIN (SELECT * FROM Btable WHERE 条件B ) AS B
ON A.keyfield = B.keyfield

ありがとうございました。

お礼日時:2011/03/11 10:32

結合列がNULLだった場合の条件を書き換えてやればいいんじゃないでしょうか?



NVL(A_TABLE.X) = NVL(B_TABLE.X)
AND (A_TABLE.X IS NOT NULL OR B_TABLE.X IS NOT NULL)
    • good
    • 0
この回答へのお礼

早速のご返事ありがとうございます。しかし
and で記述してあるせいか1行も抽出されません。
お詫びですが、まったく同じ趣旨の質問が過去にあり、回答されていました。
union を使うとのことで、これから試してみたいと思います。
ありがとうございました。

お礼日時:2011/02/25 11:18

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

関連するカテゴリからQ&Aを探す