mysql:7475
From: <enim2@xxxxxxxxxx>
Date: Fri, 11 Apr 2003 18:27:17 +0900
Subject: [mysql 07475] Re: JOIN を含む SQL 文(長文すみません)
Enimです。 > ちょっと疑問。 > > select * from table1 LEFT JOIN table2 ON table1.id=table2.id > LEFT JOIN table3 ON table2.id=table3.id > WHERE table2.code = 1; > > この場合、table1.id=table2.idがなく、table2.id=table3 があった場合、 > 表示方法はどうなるんですか? > table2 table3 だけNULL?それとも検索の対象にならない? これは > LEFT JOIN table3 ON table2.id=table3.id と書いているので「table1.id=table2.id」が無い場合は table3も自動的に取得しません。 > select * from table1 LEFT JOIN table2 ON table1.id=table2.id > LEFT JOIN table3 ON table1.id=table3.id > WHERE table3.code = 1; > > で、table1.id=table2.idがなく、table2.id=table3 があった場合は? > table2 だけNULL? そのとおりです。 > 全ての id が一致したモノだけ対象にしたければ、LEFT の部分を > INNRTに変えればいいだけなのかな? これもそのとおりです。 > このスレッドでJOINに括弧を使用しているSQL文がありましたけど > 括弧って優先順位ですよね? > 条件式なら括弧があるのも不思議ではないけど JOIN ON の部分に > なんで括弧が必要なの? ONが複雑になる場合はON内で必要になることは合っても JOIN内では括弧は(テーブルの優先順位には)関係ありません。 MS AccessのSQL自動作成機能は括弧つけまくりですが、 気にしないほうが良いかも。 ------------------------------------------------------- Name: Enim Home(PC): http://game6.ncs.gr.jp/~enim/ Home(i): http://game6.ncs.gr.jp/~enim/i/ Mail: enim2@xxxxxxxxxx -------------------------------------------------------
7435 2003-04-10 02:23 [tamura <zai91210@xxx] JOIN を含む SQL 文(長文すみません) 7436 2003-04-10 03:02 ┣["Kondo Tatsuya" <kon] 7440 2003-04-10 13:33 ┃┗[tamura <zai91210@xxx] 7441 2003-04-10 13:42 ┃ ┗[Koji KUSANAGI <kusan] Off-topic (was: Re: JOIN を含む SQL 文) 7437 2003-04-10 05:27 ┣[Shinya Kawaji <kawaj] 7444 2003-04-10 15:00 ┃┗["Kondo Tatsuya" <kon] 7445 2003-04-10 15:15 ┃ ┣[Michiaki Negoro <m-n] 7448 2003-04-10 15:30 ┃ ┗[<enim2@xxxxxxxxxx> ] 7470 2003-04-11 03:27 ┃ ┗["Kondo Tatsuya" <kon] 7471 2003-04-11 03:49 ┃ ┣[Tomohiro 'Tomo-p' KA] 7472 2003-04-11 04:10 ┃ ┗[Shinya Kawaji <kawaj] 7474 2003-04-11 14:45 ┃ ┗["Kondo Tatsuya" <kon] -> 7475 2003-04-11 18:27 ┃ ┗[<enim2@xxxxxxxxxx> ] 7478 2003-04-12 02:36 ┃ ┗["Kondo Tatsuya" <kon] 7438 2003-04-10 11:14 ┗[UNO Shintaro <uno@xx]