와..엄청 헤맷다..
덧글 수가 나오질 않아서..오라클에서는 decode함수와 서브쿼리를 했지만..
mysql에서는 서브쿼리도 어렵고..레프트조인도 어렵고..case문도 어렵고..
어쨋든 쿼리를
<select id="getForumList" parameterClass="forumDto" resultClass="forumDto">
SELECT a.forumId
, a.contents
, a.writeDate
, a.subject
, a.fileurl1
, a.fileurl2
, a.fileurl3
, a.memberid
, b.membername
, a.filename1
, a.filename2
, a.filename3
, a.writecase
, c.codename as writecasename
, sum(case a.FORUMID when d.FORUMID then 1 else 0 end) as commentCounts
, a.fileSize1
, a.fileSize2
, a.fileSize3
FROM BIZFORUM a
LEFT JOIN BIZMEMBER b
ON a.memberid = b.memberid
<isNotNull prepend="AND" property="memberName">
<![CDATA[ b.membername like '%' || #memberName# || '%' ]]>
</isNotNull>
LEFT JOIN BIZCODES c
ON a.writecase = c.codevalue
<isNotNull prepend="AND" property="writeCase">
a.writecase = #writeCase#
</isNotNull>
LEFT JOIN BIZCOMMENT d ON a.forumid = d.forumId
<isNotNull prepend="AND" property="subject">
<![CDATA[ a.subject like concat('%',#subject#,'%') ]]>
</isNotNull>
<isNotNull prepend="AND" property="contents">
<![CDATA[ a.contents like concat('%',#contents#,'%') ]]>
</isNotNull>
<isNotNull prepend="WHERE" property="forumId">
a.forumId = #forumId#
</isNotNull>
GROUP BY a.FORUMID, a.CONTENTS
ORDER BY a.forumId DESC
</select>
나오게 했다..ㅋ
group by 너무 간만에 쓰는거라 아무데나 붙였더니 오류났다..where 다음 order by 절 앞에 붙이도록 하자
'case'에 해당되는 글 1건
- 2007.06.27 my sql - case, 서브쿼리
2007. 6. 27. 11:49
A&J프로젝트