mysql:14614
From: nobu <nobu <mininobu@xxxxxxxxxx>>
Date: Wed, 30 Jul 2008 12:57:20 +0900
Subject: [mysql 14614] Re: 2段階以上の外部結合のやり方
近藤(nobu)です。 わたなべさん、ご回答ありがとうございます。 ご提示いただいた「単純に次のように・・・」の内容で期待通りの結果を得ることが できました。Oracleの(+)で慣れてしまったために、MySQLのやり方には若干 違和感がありますが・・・。MySQLの結合条件の書き方は基底テーブルにぶら下 げるような書き方をするんですね。 >結合条件はFROM句にまとめてしまって、 私も混在は気持ち悪いなーと思ってました。FROM句一本でまとめる方向に したいと思います。 > ※Oracleどっぷりの人とよくぶつかりますけど、(+)は嫌い・・・ 結合"条件"なのでWHERE句で宣言できるべきだ!ということなんでしょうか。 このような基本的な作法がDBによって異なるというのもちょっと考えものです よね。個人的には、"JOIN句"というように結合条件を明示的に記述する句が あってもいいのになーと思いました。 以上、ありがとうございました。 2008/07/30 12:44 Shuji Watanabe <shuji.w6e@xxxxxxxxxx>: > わたなべです。 > > 単純に次のように外部結合するのではマズイんでしょうか? > FROM > recipe_header rh1 > left outer join category cg > on ( > rh1.category = cg.id > ) > left outer join recipe_material rm > on ( > rh1.id = rm.id > ) > left outer join unit ut > on ( > rm.unit_id = ut.id > ) > > ちなみに最初のSQLですけど、 > FROM > recipe_header rh1 > left outer join category cg on (rh1.category = cg.id) > left outer join recipe_material rm on (rh1.id = rm.id) > inner join unit ut on (rm.unit_id = ut.id) > というように、結合条件はFROM句にまとめてしまって、 > WHERE句に結合条件的な抽出条件は混ぜない方がいいと思います。 > ※Oracleどっぷりの人とよくぶつかりますけど、(+)は嫌い・・・ > >
14608 2008-07-30 11:30 [nobu <mininobu@xxxxx] 2段階以上の外部結合のやり方 14609 2008-07-30 11:44 ┗[岡本 基 <okamoto@xx] 14610 2008-07-30 11:53 ┗[IIDA Yosiaki <y-iida] 14611 2008-07-30 11:59 ┣[岡本 基 <okamoto@xx] 14612 2008-07-30 12:02 ┗[nobu <mininobu@xxxxx] 14613 2008-07-30 12:44 ┗["Shuji Watanabe" <sh] -> 14614 2008-07-30 12:57 ┗[nobu <mininobu@xxxxx] 14615 2008-07-30 13:51 ┗[IIDA Yosiaki <y-iida] 14616 2008-07-30 14:30 ┗["Shuji Watanabe" <sh] 14617 2008-07-30 14:51 ┣[nobu <mininobu@xxxxx] 14618 2008-07-30 14:58 ┃┗[岡本 基 <okamoto@xx] 14619 2008-07-30 17:19 ┗[chuuken kenkou <ken_]