<query id="getReceivedMessages" action="select"> <tables> <table name="member_message" alias="message" /> <table name="member" alias="member" /> </tables> <columns> <column name="message.*" /> <column name="member.user_id" /> <column name="member.member_srl" /> <column name="member.nick_name" /> <column name="member.user_name" /> </columns> <conditions> <condition operation="equal" column="message.receiver_srl" var="member_srl" notnull="notnull" /> <condition operation="equal" column="message.message_type" var="message_type" default="R" pipe="and" /> <condition operation="equal" column="message.sender_srl" var="member.member_srl" pipe="and" /> </conditions> <navigation> <index var="sort_index" default="message.list_order" order="asc" /> <list_count var="list_count" default="20" /> <page_count var="page_count" default="10" /> <page var="page" default="1" /> </navigation> </query>
위는 modules\communication\queries\getReceivedMessages.xml 입니다.
메시지를 보낸사람과, 받은사람 모두가 일치하는 결과값만 받고 싶습니다. (서브쿼리)
예를들어
$args->member_srl = $logged_info->member_srl;
$args->member.member_srl = $srl;
$args->member.member_srl = $srl;
위와 같이 작동하면 오류가 발생합니다.
member.member_srl 에 존재하는
저 쩜을 xml파일에서 _으로 치환하고
$args->member_srl = $logged_info->member_srl;
$args->member_member_srl = $srl;
형태로 사용하면 오류없이 조건식이 성립됩니다.
$args->member_member_srl = $srl;
형태로 사용하면 오류없이 조건식이 성립됩니다.
다른 모듈들은 찾아보면 모두 _ 식으로 되어있는데 왜 유독 커뮤니케이션 모듈에서만 . 이 포함되어 있는걸까요 ㅠㅠ
현재 제작중인것을 완성하면 무료마켓에 배포할 의사가 있기 때문에...
코어 수정은 하지 않고 싶습니다. (저만 쓴다면 모를까 남들도 코어수정 해야 하잖아요)
코어 수정은 하지 않고 싶습니다. (저만 쓴다면 모를까 남들도 코어수정 해야 하잖아요)
코어를 수정하지 않고 저 $args->member.member_srl 을 활용하여 이중조건 (서브쿼리) 를 완성하려면
어떻게 적용해야 하나요? 트릭이 있나요?
member 테이블의 member_srl 칼럼을 이용한다는 뜻이에요
<condition operation="equal" column="message.sender_srl" var="member.member_srl" pipe="and" />
member 테이블의 member_srl 값과 message 테이블의 sender_srl 값이 일치하는 경우.. 라는 의미가 되겠죠
지금 member 테이블과 message 테이블을 join 한거잖아요. join 의 기준이 이 부분이 된거죠