left outer join

DataBase/mysql 2007. 12. 13. 10:44
  SELECT a.fldid, a.userid, a.name, ifnull(b.count, 0) as count
 FROM test001 a left outer join
  (select fldid,  count(fldid) as count, userid from test002 where  userid='neouser'  group by fldid) b
 on a.fldid = b.fldid and a.userid=b.userid
 where a.userid='neouser'

위 쿼리의 결과는 아래와 같이 나온다.
쉽게 볼 것같지만 이것을 내가 따로 다루는 이유는 a.userid='neouser' 를
on에 두는지 where에 두는지가 차이가 많이 난다.

만일 a.userid='neouser'를 on절에 두게 되면 둘다 모두 count는 3,3 이 나온다.
이것가지고 1시간여를 시간을 보낸터라 기록에 남긴다.

+-------+--------+------------------+-------+
| fldid | userid | name             | count |
+-------+--------+------------------+-------+
|     6 | neouser   | test             |     3 |
|  1040 | neouser   | test2          |     0 |
+-------+--------+------------------+-------+



글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!