mysql:14619
From: chuuken kenkou <chuuken kenkou <ken_ken_1962@xxxxxxxxxx>>
Date: Wed, 30 Jul 2008 17:19:12 +0900
Subject: [mysql 14619] Re: 2段階以上の外部結合のやり方
話が変な方向になっているような。。。 > ちなみに、Oracle式に書いた場合、微妙に解釈が違うので注意が必要です。 > -- > FROM > A, B > WHERE > A.hoge_id = B.id (+) > AND B.code = '001' > -- > これを慣れてない人は、こんな感じにOUTER JOINしてしまいます。 > -- > A > LEFT OUTER JOIN B > ON ( > A.hoge_id = B.id > AND B.code = '001' > ) > このようなOracle式書き方をそのままON句に入れると、ばっちり無視されるのでご注意を。 > ※ON句には結合条件のみが記述できるので、抽出条件は書いちゃダメ > 「ON句に入れると、ばっちり無視される」のではなく、その条件式も結合条件として使われます。 つまり、上記の例では、B.code='001'の行のみB側に存在することになり、それ以外のBの行は存在せず、nullでAの行に結合されます。 ONでなく、WHEREに「B.code='001'」を指定すると、結合結果に対して評価されるような動きになります。 (内部的には、LEFT JOINがINNER JOINに変わる) ONでは結合条件、WHEREでは制限条件を指定するのですが、ONで定数を値とした条件を指定するケースはありますので念のため。 _________________________________________________________________ イカ天やWe舞台のWebオーディション、夢をかなえるチャンス!詳しくはこちら http://transform.jp.msn.com/
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_]