질문/조언질답게시판

@날아라님 의 광고클릭 모듈의 회원 실적(포인트획득)을 랭킹으로 보여주는데 사용 하는 쿼리가 아래와 같을 것 같습니다.

 

<query id="select_stat_point" action="select">
    <tables>
        <table name="adclick_log" />
    </tables>
    <columns>
        <column name="*" />
        <column name="sum(point)" alias="sum_point" />
        <column name="count(member_srl)" alias="count_member_srl" />
    </columns>
    <conditions>
        <condition operation="more" column="regdate" var="regdate_more" pipe="and" />
        <condition operation="less" column="regdate" var="regdate_less" pipe="and" />
    </conditions>
    <groups>
        <group column="member_srl" />
    </groups>
    <navigation>
        <index var="sort_index" default="sum_point" order="order_type" />
        <list_count var="list_count" default="20" />
        <page_count var="page_count" default="10" />
        <page var="page" default="1" />
    </navigation> 
</query>

 

 

 

그런데 탈퇴한 회원의 경우도 표시가 되는 문제가 있습니다. member  테이블에 없는 회원번호의 경우 제외하려고 하면 어떻게 추가해야 하는지 알려주시면 감사하겠습니다.

 

  • profile

    이런 식으로 해주시면 될 것 같습니다. 직접 테스트해 보지는 않았습니다.

    비슷한 경우에 다른 분들에게도 도움이 될 수 있도록 자세히 설명해 보겠습니다.

     

    빨간색 부분:

    - 회원 테이블을 참조하여

    - member_srl 값이 일치하는 데이터만 선택하도록 합니다.

     

    파란색 부분:

    - 참조하는 테이블이 2개가 되면 어느 컬럼이 어느 테이블 소속인지 분명히 밝혀야 합니다. 회원 테이블에도 member_srl, regdate 등 똑같은 이름의 컬럼이 있으니까요.

    - 따라서 기존의 컬럼 이름 앞에 adclick_log. 를 하나씩 붙여주어 혼동이 발생하지 않도록 합니다.

     

    이렇게 하면 존재하지 않는 회원을 제외하는 효과도 있고, <columns> 부분에서 닉네임 등 회원정보를 한꺼번에 불러와서 표시하는 기능을 구현할 수도 있습니다. 반면, 커뮤니케이션 모듈에서 탈퇴한 회원과 주고받은 쪽지가 증발하는 버그의 원인이기도 합니다 ㅋㅋㅋ

     

    드디어 웹지기님도 JOIN의 막강한 파워를 사용하기 시작하시는군요 ㄷㄷㄷ

     

    <query id="select_stat_point" action="select">
        <tables>
            <table name="adclick_log" />

            <table name="member" />
        </tables>
        <columns>
            <column name="adclick_log.*" />
            <column name="sum(adclick_log.point)" alias="sum_point" />
            <column name="count(adclick_log.member_srl)" alias="count_member_srl" />
        </columns>
        <conditions>
            <condition operation="more" column="adclick_log.regdate" var="regdate_more" pipe="and" />
            <condition operation="less" column="adclick_log.regdate" var="regdate_less" pipe="and" />

            <condition operation="equal" column="adclick_log.member_srl" default="member.member_srl" pipe="and" />
        </conditions>
        <groups>
            <group column="adclick_log.member_srl" />
        </groups>
        <navigation>
            <index var="sort_index" default="sum_point" order="order_type" />
            <list_count var="list_count" default="20" />
            <page_count var="page_count" default="10" />
            <page var="page" default="1" />
        </navigation> 
    </query>

  • profile profile
    저번에 한번 가르쳐 주신거로 해보려고 했는데 정확히 회원번호를 어떻게 매칭시키는지를 몰라서 못하고 있었는데 알려주셔서 감사합니다~
  • profile profile
    와우~ 탈퇴,휴면회원 건너띄고 실제회원들의 목록만 랭킹에 잘 나옵니다! 자세히 설명해 주신거 열심히 공부해보겠습니다!