쿼리문 한번 수정해 주십시오. 부탁드립니다. 채택완료
오마이갖
6년 전
조회 4,114
아래 소스 한번 봐주십시오. 별도 페이지에 제품 it_id 가 나오고 it_id 가 3일전 몇개 팔렸는지 확인하는 소스입니다.
근데 아래 1560306953 를 넣으면 모든 상품 it_id 값 옆에 3일전에 팔린 1개로 찍히게 됩니다.
정리하자면
===============================
1560306953 --- 3개팔림
1560306444 --- 1개팔림
===============================
형식으로 처리 하려고 합니다. 고수님들 부탁드립니다.
<?php
include_once('./_common.php');</p>
<p>$sql_today_01 =" select * from {$g5['g5_shop_item_table']} where it_use = '1' and it_11 = '' order by ca_id";
$result01 = sql_query($sql_today_01);</p>
<p>$sql_today_02 = " select count(*) as cnt from {$g5['g5_shop_cart_table']} where date_format(ct_time, '%Y-%m-%d') = '" . date('Y-m-d',strtotime(G5_TIME_YMD.' -5 day')). "' and ct_status <> '취소' and ct_status <> '쇼핑' and it_id = '1560306953'"; // 이곳에 $it_id 를 넣으면 0으로 나와요 ㅜㅜ
$result02 = sql_fetch($sql_today_02);
?></p>
<p><?php
for ($i=0; $row=sql_fetch_array($result01); $i++)
{
echo $result02['cnt'];
echo("---");
echo $row['it_id'];
echo("</br>");
}
?></p>
<p>
내용 읽어 주셔서 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
6년 전
쿼리문만 짜드리면
</p>
<p>SELECT a.it_id, a.it_name, count(b.it_id)</p>
<p>FROM g5_shop_item a, g5_shop_cart b
WHERE a.it_id = b.it_id</p>
<p> and a.it_use = '1'</p>
<p> and a.it_11 = ''
AND b.ct_status NOT IN ('취소','쇼핑')
AND date(b.ct_time) = (NOW() - INTERVAL 3 DAY)
GROUP BY a.it_id, a.it_name
위의 쿼리는 3일전일자에 판매가 이루어진 모든 상품의 리스트
it_id, it_name , 수량
을 추출합니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
오마이갖
6년 전
�
플래토
6년 전
그럴때는
아이템을 기존테이블로두고
카트의 값의 정보만 카운트를 걸어도 됩니다
select a.it_id, a.it_name,
(select count(*) cnt from g5_shop_cart b
where b.it_id =a.it_id
and 위의 일자조건) cnt
g5_shop_item a
where (판매상품조건)
와 같이 걸어도 됩니다만
전체상품이 다 나온다는점
그래서 쿼리가 느려질수 있다는걸 감안하셔야 합니다
속도개선의 방법들은 풀어가야할 숙제겠죠
아이템을 기존테이블로두고
카트의 값의 정보만 카운트를 걸어도 됩니다
select a.it_id, a.it_name,
(select count(*) cnt from g5_shop_cart b
where b.it_id =a.it_id
and 위의 일자조건) cnt
g5_shop_item a
where (판매상품조건)
와 같이 걸어도 됩니다만
전체상품이 다 나온다는점
그래서 쿼리가 느려질수 있다는걸 감안하셔야 합니다
속도개선의 방법들은 풀어가야할 숙제겠죠
�
오마이갖
6년 전
플래토님 죄송하지만 조그만더 구체적으로 알려주십시오.. ㅜㅜ
댓글을 작성하려면 로그인이 필요합니다.
6년 전
</p>
<p><?php
include_once('./_common.php');</p>
<p>$sql_today_01 =" select * from {$g5['g5_shop_item_table']} where it_use = '1' and it_11 = '' order by ca_id";</p>
<p>$result01 = sql_query($sql_today_01);</p>
<p>$sql_today_02 = " select count(*) as cnt from {$g5['g5_shop_cart_table']} where date_format(ct_time, '%Y-%m-%d') = '" . date('Y-m-d',strtotime(G5_TIME_YMD.' -5 day')). "' and ct_status <> '취소' and ct_status <> '쇼핑' and it_id = '1560306953'"; // 이곳에 $it_id 를 넣으면 0으로 나와요 ㅜㅜ</p>
<p>//--</p>
<p>$sql_today_02 .= " group by date_format(ct_time, '%Y-%m-%d')"; // 추가 쿼리 부분</p>
<p>//--</p>
<p>$result02 = sql_fetch($sql_today_02);
?></p>
<p><?php
for ($i=0; $row=sql_fetch_array($result01); $i++)
{
echo $result02['cnt'];
echo("---");
echo $row['it_id'];
echo("</br>");
}
?></p>
<p>
그리고 it_id = '1560306953' 는 그 조건에 맞는 그것이 없기때문 아닌가요?
테이블 열어놓고 조건칼럼들 비교해보세요. 위 조건정도로 디비가 거짓말 안해요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
저기서 it_id, it_name , 수량 을 추출하는데요 판매 되는건이 없으면 내용이 없는데요 판매컨수가 없어도 t_id, it_name , 0개 수량
이런식으로 처리를 하고 싶은데 도움좀 부탁드립니다. 감사드립니다.