안녕하세요
조인으로해결을 절대로 할수없다 라는 답변이라도 좋습니다.
TABLE_A 파트너 테이블
num => no => 자동증가 키
p_id => 아이디
no p_id pass
1 test1 1111
2 test2 1111
3 test3 1111
4 test4 1111
.........
가입할때마다 계속 증가
TABLE_B 테이블 [ 통계 테이블 ]
no => 자동증가 키
p_id = 아이디
count1 => 방문수 숫자로 저장 +1 증가
count2 => 가입자수 숫자로 +1 증가
time1 = 20051211 저장 날짜
time2 = 2005121115 저장 날짜 [시간까지 저장]
현재 한 p_id 로 하루에 24시간씩 총 24개의 레코드가
쌓이게했습니다.
예>
no p_id count1 count2 time1
time2
1 test1 1 0 20051211
2005121100
2 test2 2 0 20051211
2005121101
3 test3 3 1 20051211
2005121103
......
24 testx 2 0 20051211
2005121123
위 2개의 테이블에서 TABLE_A 의 해당하는 p_id 를 가지면서 검색날짜에
맞게
TABLE_A, TABLE_B 통계 결과를 화면에 출력해주고 싶습니다.
조건
1.p_id 에 해당하는 p_id == test2 TABLE_B 테이블에 없을경우 화면에
출력할경우에는
검색방법 : 날짜 20051211 검색할경우
아래와 같이 화면에 출력해주고 싶습니다.
$see1' AND '$see2' => 20051211 일 AND 20051211 일
예>KOREA
no p_id count1 count2 time1 time2
1 test1 100 31 20051211
2005121100
2 test2 0 0 0
0
3 test3 32 5 20051211
2005121103
......
24 testx 110 19 20051211
2005121123
구현방향
1. TABLE_A 에 p_id 아이디 test2 있다면 TABLE_B 에 해당하는 날짜에
p_id 아이디가 없더라도
화면상에는
예>KOREA 위와같이 출력을 해주고 싶습니다.
날짜 검색시 셀렉트 구조
$see1' AND '$see2' => 20051215 일 AND 20051222 일
해결이 안되는 쿼리문
$query5 = "SELECT a.p_id ,sum(b.count1) ,sum(b.count2), FROM
TABLE_A a LEFT OUTER JOIN TABLE_B b on (a.p_id=b.p_id) WHERE
b.time1 BETWEEN '$see1' AND '$see2' GROUP BY a.p_id";
위의 쿼리문으로 할경우 화면에 출력되는 형식
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
no p_id count1 count2 time1 time2
1 test1 100 31 20051211
2005121100
2 test3 32 5 20051211
2005121103
......
24 testx 110 19 20051211
2005121123
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
즉 검색날짜의 TABLE_B 에 p_id = test2 가 없으면
안나옵니다.
검색날짜에 없더라도 TABLE_A 에 p_id=test2 가 있기 때문에
화면상에는
3 test2 0 0 20051211
2005121103
이렇게 만들어 주고 싶습니다.
조인으로 안되면 for 문으로 여러번 돌려야 합니다.
도움을 절실히 필요로 합니다.
부탁드립니다.
|