멤버디비에서 특정추천인을 골라낸후, 다른 데이터 디비에서 특정추천인들을 골라낸 멤버디비만을 추출
본문
안녕하세요
member 디비와 item_view 디비의 멤버필드는 동일하나,
추천인이 들어있는 필드는 member 디비에만 있습니다.
1. "member" 디비의 "recommend" 필드에서 특정 추천인으로 되어 있는 멤버만을 골라낸후
2. "item_view"디비의 "wr_1"필드(멤버)에서 특정 추천인과 동일한 레코드만을 추출한후 보여줄려고 합니다.
어떻게 해야 하는지? 고수분의 한수를 부탁합니다.
먼저 도움에 감사드리며, 즐거운 하루되세요 ^&^
답변 4
$temp_recommend = $member['mb_id'];
$sql = "
select *
from g5_write_item_view
where wr_1 in (select mb_id from g4_member where mb_recommend = '$temp_recommend')
and wr_8 between '$today' and '$todays'
";
member필드가 동일하다면 join 을 이용해 추출 가능할거 같습니다.
예를 들어
select A.member, B.wr_1, A.recommend
from member as A
join item_view as B on B.wr_1=A.member;
이런 방식으로요.
자세한 건 join 으로 검색해 보시면 더 많은 정보를 얻으실 수 있을겁니다.
만약 조건식이 필요하다면 wherer 절을 추가하셔서 검색하시면 될거 같습니다.
추가...
추천인을 찾는거면 item_view 의 wr_1 에는 추천인이 들어가는지 아니면 회원아이디가 들어가는지에 따라 쿼리가 변경될 겁니다. 예를들어
on B.wr_1=A.recommend 이런씩으로요.
select *
from item_view
where wr_1 in (select mb_id from member where recommend = 'aaa')
먼저, 다시 한번 도움에 감사드립니다.
에러가 발생하여...
위의 내용을 바탕으로 아래와 같이 작성하였습니다.
멤버들이 로그인하면
멤버 == $member[mb_id] 가 되므로, 아래와 같이 작성하여
결과를 보았을때, 멤버가 추천인일때 그와 관련된 디비가 보여야 하는데,
어떤 멤버가 들어가도 내용이 같은 결과가 보입니다. 뭐가 잘못되엇을까요??
$temp_recommend =='".$member[mb_id]."' ;
$temp_recommend ='".$member[mb_id]."' ;
위 변수부분을 == 으로 작성하나, = 으로 작성하나 결과는 같이 보이고 있습니다.
$sql =" SELECT
g4_write_item_view.*,
g4_member.*
FROM g4_write_item_view
INNER JOIN g4_member
ON g4_write_item_view.wr_1 = g4_member.mb_id
where g4_member.mb_recommend = '".$temp_recommend."'
and wr_8 between '".$todays."' and '".$totodays."'
GROUP BY wr_1
" ;