sql 질문 채택완료
밀랍
4년 전
조회 1,516
</p>
<p> $sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$list_name = explode('||',$row['wr_12']);</p>
<p>
기간내에 포함되는 지난 모든 게시글의 wr_12값을 뿌려주고 싶은데..
저렇게 하니까 기간내 모든 wr_12값이 아닌 바로 이전 게시글의 wr_12값만 가져옵니다.
기간내 모든 wr_12값을 전부 뿌려줄려면 어떻게 해야 하나요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
4년 전
$sql = "
select a.mb_id, b.mb_name, group_concat( wr_12) wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
4년 전
음 저렇게 하시면 모든 기간내에 wr_12값 가져오실거 같은데..
나머지 게시글이 wr_29 값이 없거나, mb_id 가 없거나.. 조건에 맞지 않거나 하지 아닐까요..?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 10개
�
밀랍
4년 전
�
밀랍
4년 전
wr_12값이 배열로 들어가 있어서 안나오는 경우도 있나요?
각 게시물마다 wr_12값이 몇개씩 들어가 있어서 explode로 뽑아내고 있는데...
각 게시물마다 wr_12값이 몇개씩 들어가 있어서 explode로 뽑아내고 있는데...
d
dev2lgb
4년 전
wr_12 값이 배열로 들어갔을 리는 없을거같아요
위에 보니까 abc||cde||fg 이런식으로 들어가 있으신거같은데 하나의 값이죠..
$result = sql_query($sql);
이부분 윗줄에서
echo $sql;
찍어보시고
나온 쿼리문
phpmyadmin 에서 쿼리 돌려보시면 정상적으로 원하시는 값이 나오나요?
위에 보니까 abc||cde||fg 이런식으로 들어가 있으신거같은데 하나의 값이죠..
$result = sql_query($sql);
이부분 윗줄에서
echo $sql;
찍어보시고
나온 쿼리문
phpmyadmin 에서 쿼리 돌려보시면 정상적으로 원하시는 값이 나오나요?
d
dev2lgb
4년 전
아 ... 한 회원이 글을 여러개 올리는 경우도 있나요?
�
밀랍
4년 전
네. 한 회원이 여러개 올리는 경우가 많습니다.
print_r2 찍어봐도... 값은 마지막 것만 나옵니다. ㅠㅠ
print_r2 찍어봐도... 값은 마지막 것만 나옵니다. ㅠㅠ
d
dev2lgb
4년 전
아.. 쿼리가 아예 잘못 됐네요...
혹시 멤버테이블을 조인한 이유가 있나요?
회원 한명당 하나만 불러오시나요?
그렇다면, wr_12는 그회원이 작성한 글중 어떤걸 기준으로 뽑으시나요?
아.. 기간내에 그회원이 작성한 모든글의 wr_12의 값인가요?
[code]
$sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
[/code]
혹시 멤버테이블을 조인한 이유가 있나요?
회원 한명당 하나만 불러오시나요?
그렇다면, wr_12는 그회원이 작성한 글중 어떤걸 기준으로 뽑으시나요?
아.. 기간내에 그회원이 작성한 모든글의 wr_12의 값인가요?
[code]
$sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
[/code]
�
밀랍
4년 전
멤버테이블을 조인한 이유는 같은 아이디값을 검색, wr_31값을 더해서 순위를 메기기 위해서 조인을 했습니다.
d
dev2lgb
4년 전
그렇면... 제 짧은 지식으로는..
while문 안에서 쿼리를 한번더 돌리셔서, wr_12값을 찍어주는게 좋을거같아요!
분명히 더 좋고 빠른방법은 있겠지만.. 그건 다른분이 아마!
[code]
$sql = "
select a.mb_id, b.mb_name, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$sql = "
select wr_12
from {$write_table}
where mb_id = {$row['mb_id']}
";
// 다시 반복문 써서 출력
$list_name = explode('||',$row2['wr_12']);
~~~~
[/code]
while문 안에서 쿼리를 한번더 돌리셔서, wr_12값을 찍어주는게 좋을거같아요!
분명히 더 좋고 빠른방법은 있겠지만.. 그건 다른분이 아마!
[code]
$sql = "
select a.mb_id, b.mb_name, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$sql = "
select wr_12
from {$write_table}
where mb_id = {$row['mb_id']}
";
// 다시 반복문 써서 출력
$list_name = explode('||',$row2['wr_12']);
~~~~
[/code]
�
밀랍
4년 전
회원 한명당 하나만 불러온다는게 무슨 말인지 모르겠습니다.
기간내에 모든 게시글을 검색해서... 같은 id값을 검색해서 순위를 메기기 때문에...
wr_12값은 해당 회원이 구입한 구입 물품입니다.
wr_31은 wr_12값을 모두 더한 값이고.. 그 금액으로 순위를 매기고 있습니다.
기간내에 모든 게시글을 검색해서... 같은 id값을 검색해서 순위를 메기기 때문에...
wr_12값은 해당 회원이 구입한 구입 물품입니다.
wr_31은 wr_12값을 모두 더한 값이고.. 그 금액으로 순위를 매기고 있습니다.
�
밀랍
4년 전
채택을 못드려 죄송합니다
원하는 답을 다른분께서 다셔서....
정성어린 답글 정말 감사합니다
원하는 답을 다른분께서 다셔서....
정성어린 답글 정말 감사합니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
계속 테스트중인데.. 카운트도 맞고, 금액도 맞고.. 다 맞는데
wr_12값을 모두 못가져 옵니다.