mysql:5569
From: "yosinaka tosimizu" <"yosinaka tosimizu" <tosibe@xxxxxxxxxx>>
Date: Tue, 28 May 2002 14:35:25 +0900
Subject: [mysql 05569] Re: left outer join について
よしなかです。 質問してから時間がたってしまいましたが、解決したので 報告させていただきます。 > とみたです。 > > # 関係ない話題に返信で新しい話題を出すのはやめましょうね。 申し訳ないです。以後気をつけますのでお許しください。 > > 望む動作としては請求種別にある種別項目はすべて出力し > > 日付とマッチしない請求種別項目も出力させたいのです。 > > 「where NYUKIN_KANRI.seikyu_date = '20020521'」という条件を指定してい > るので、ムリのような…。 > > この条件を「where NYUKIN_KANRI.seikyu_date = '20020521' or > NYUKIN_KANRI.seikyu_date is null」とかにしてみてはどうでしょう? とみたさんのご指摘のようにwhere条件に日付を指定していたのが 間違いのもとでした。 でもなかなか解決策が思い浮かばなくて、ここ三日ほどずっと考え続けていました。 結論として、where条件に日付を入れるのではなくて、テーブル結合条件に入れてみ たら 望む結果が取得できました。 <元のSQL文> select SEIKYU_SYUBETU.seikyu_syubetu_name as seikyu_syubetu_id, sum(NYUKIN_KANRI.seikyu_kingaku) as seikyu_kingaku from SEIKYU_SYUBETU left outer join NYUKIN_KANRI on SEIKYU_SYUBETU.seikyu_syubetu_id = NYUKIN_KANRI.seikyu_syubetu_id where NYUKIN_KANRI.seikyu_date = '20020521' group by SEIKYU_SYUBETU.seikyu_syubetu_id <変更したSQL文> select SEIKYU_SYUBETU.seikyu_syubetu_name as seikyu_syubetu_name, sum(NYUKIN_KANRI.seikyu_kingaku) as seikyu_kingaku from SEIKYU_SYUBETU left join NYUKIN_KANRI on SEIKYU_SYUBETU.seikyu_syubetu_id = NYUKIN_KANRI.seikyu_syubetu_id and NYUKIN_KANRI.seikyu_date = '20020525' group by SEIKYU_SYUBETU.seikyu_syubetu_id とみたさん、ヒントを与えてくださってありがとうございました。 今回初めて質問させてもらったんですが、わからないまま仕方ないから 納品してしまおうかなどと考えても見ましたが、大変助かりました。 ありがとうございます。 LOOSE-FITS-SMART
5541 2002-05-23 22:57 [西出 学 <Nishide@xxx] トランザクション開始でエラー発生 5545 2002-05-24 18:45 ┗[Kengo Jinno <kengo@x] 5549 2002-05-25 00:16 ┗["yosinaka tosimizu" ] left outer join について 5551 2002-05-25 09:52 ┗[とみたまさひろ <tomm] -> 5569 2002-05-28 14:35 ┗["yosinaka tosimizu" ]