여러 테이블에서 자료 취합해서 보여주기
본문
안녕하세요.
검색을 해봐도 원하는 답을 얻을 수 없어 이렇게 질문 남기게 되었습니다.
제목 그대로 여러 테이블에서 자료를 가져와 한번에 보려고 합니다.
우선 아래처럼 소스를 구성했습니다.
<?php
$sql = " SELECT order_no,invoice_no,release_date,order_date,op_name,payment_price,purchase_quantity,receive_name,receive_tel,address,delivery_memo FROM owlhouse_order_coupang ";
$sql .= "UNION ALL";
$sql .= " SELECT order_no,invoice_no,invoice_regist_date,payment_date,op_name,purchase_price,purchase_quantity,receive_name,receive_tel,address,delivery_memo FROM owlhouse_order_tmon ";
$result = sql_query($sql);
$j = 1;
for ($i=0; $row=sql_fetch_array($result); $i++)
{ ?>
<tr>
<td><?php echo $j;?></td>
<td><?php if ($row['invoice_no'] == "") { echo "배송전"; } else { echo "배송완료"; }?></td>
<td><?php if ($table_result == "owlhouse_order_coupang") { echo "쿠팡"; } elseif ($table_result == "owlhouse_order_tmon") { echo "티몬"; }?></td>
<td><?php echo $row['order_no'];?></td>
<td><?php echo $row['order_date'];?></td>
<td><?php echo $row['op_name'];?></td>
<td><?php echo $row['purchase_quantity'];?></td>
<td><?php echo $row['payment_price'];?></td>
<td><?php echo $row['receive_name'];?></td>
<td><?php echo $row['receive_tel'];?></td>
<td><?php echo $row['address'];?></td>
<td><?php echo $row['delivery_memo'];?></td>
<td><?php echo $row['release_date'];?></td>
<td><?php echo $row['invoice_no'];?></td>
<td><button class="btn btn-primary btn-sm">수정</button></td>
</tr>
<?php $j++; } ?>
그누보드는 UNION 적용이 안된다고 해서 위 구문을 mysql~ 로 변경해봤지만
아무것도 출력되지 않네요.
쿼리문의 잘못인지 다른 방법이 있는건지 궁금합니다.
아울러 한 가지 더 질문드리고자 한다면,
위에 코드에서는 2개의 테이블에서 자료를 합쳐서 보여주는데,
각 자료들이 어느 테이블로부터 왔는지는 어떻게 알 수 있나요?
루프로 한 행의 값을 표시해줄 때, 그 값들이 어느 테이블로부터 온 값인지를
알 수 있는 방법을 알고 싶습니다.
그래서 위의 코드처럼 if문으로 구분을 해주려고 합니다.
고수님들의 소중한 답변 기다리겠습니다.
감사합니다.
!-->답변 2
기본적으로 union 을 사용못하게 막았으니 common.lib.php 내 union 찾아보면 알수 있을 겁니다
두번째 질문은 쿼리를 조금 수정하시거나 지금처럼 하시면 되겠죠 ^^
쿼리로 조회 하실때 간단히 구분자를 포함해서 조회 하시면 됩니다.
A테이블 : SELECT 'A' AS tmp_tp, order_no, .....
B테이블 : SELECT 'B' AS tmp_tp, order_no, .....
이런식으로 추가 하셔서
조회된 데이터에서 $row['tmp_tp'] 값으로 구분 하시면 됩니다.
답변을 작성하시기 전에 로그인 해주세요.