A 테이블 셀렉트 후 mb_id값 비교해서 다시 B테이블 셀렉트 하는 방법좀요 ㅠ
본문
$sql_choice = " select * from g5_write_choice where wr_1 = '3' ";
$result_choice = sql_query($sql_choice);
$row_choice=sql_fetch_array($result_choice);
>>> g5_write_choice 테이블에서 wr_1 값이 3인거만 추출합니다.
$sql = " select * from g5_write_plana_refund2 where mb_id = '$row_choice[mb_id]' and wr_datetime BETWEEN date('2021-07-31 00:00:00') and date('2021-08-13 23:59:59')+1 and wr_10 = '1' ";
$result = sql_query($sql);
>>> g5_write_choice 테이블에서 추출한값을 mb_id 아이디를 비교해서 동일한 아이디 있는거만 나오게 합니다.
for ($i=0; $row=sql_fetch_array($result); $i++) {
$row[mb_id]
}
>>>> 이렇게 했더니 값이 하나만 나옵니다. ㅠㅠ 테이블 값 열어보면 수십개 값이 있는데 말이죠 ㅠㅠ
왜 그럴가요?
답변 3
$sql_choice = " select distinct mb_id from g5_write_choice where wr_1 = '3' ";
$result_choice = sql_query($sql_choice);
wihle ($row_choice=sql_fetch_array($result_choice)) {
$sql = " select * from g5_write_plana_refund2
where mb_id = '{$row_choice['mb_id']}'
and wr_datetime BETWEEN date('2021-07-31 00:00:00')
and date('2021-08-13 23:59:59')+1 and wr_10 = '1' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['mb_id'];
}
}
g5_write_choice 테이블에서 mb_id 기준으로 중복제거해서
mb_id에 해당되는 값들을 기준으로 g5_write_plana_refund2 에서
추출해서 처리를 하면됩니다.
!-->$row, $result 변수가 중복되는 건 아닐까요?
소스 전체를 올려 보세요.
date('2021-08-13 23:59:59')+1<--- date는 무엇이며 +1은 무엇인가요?
다음처럼 해보세요
$rowk = sql_fetch(" select group_concat(DISTINCT mb_id) as mbid from g5_write_choice where wr_1 = '3' ");
$idStr = "'".str_replace(',', "','", $rowk['mbid'])."'";
$date1 = ''2021-07-31 00:00:00';
$date2 = "2021-08-13 23:59:59";
$result = sql_query(" select * from g5_write_plana_refund2 where mb_id IN($idStr) and wr_datetime BETWEEN $date1 and $date2 and wr_10 = '1' ");
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row[mb_id];
}