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'
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 |
+-------+--------+------------------+-------+