채택완료

full outer join 문제 문의

아래 소스처럼 디비의 조인기능을 이용해서 데이터를 합쳐서 출력해주려 하는데

데이터값이 불러와지질 않네요 ㅠ

두 테이블 모두에 it_name이라는 컬럼과 일치하는 값들은 있는 상태입니다.

도움 부탁드립니다.

Copy
<?php

$sub_menu = '400400';

include_once('./_common.php');

 

auth_check($auth[$sub_menu], "w");

 

$sql = " select * from {$g5['g5_shop_order_table']} a full outer join {$g5['g5_shop_allproductsurl_table']} b on a.it_name=b.it_name ";

$result = sql_query($sql)  ;

$row=sql_fetch_array($result);

 

echo 'test page';

echo $row['b.item_image'];


 

?>
|

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
2021-01-06 (수) 12:41:45
$sql = " select * from {$g5['g5_shop_order_table']} a, {$g5['g5_shop_allproductsurl_table']} b where a.it_name=b.it_name ";
echo $sql;
$result = sql_query($sql)  ;
$row=sql_fetch_array($result);

=> 매칭되는값만 얻으신다면 Inner join 으로 하셔야 될거 같습니다.

쿼리문을 찍어서 phpmyadmin 이나 sql 을 실행해보세요.

=> 작동하지 않는다면 쿼리가 정상적이지 않을 경우가 많습니다.

=> 디비툴에서 직접실행해보면 오류를 알려주므로 그걸보고 고치시면 됩니다.

https://m.blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221435077767&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

2021-01-06 (수) 10:39:30
echo $row['b.item_image'];

echo $row['item_image'];

이렇게 호출하시는게 맞을거 같고

$row=sql_fetch_array($result);

요청이면 

while ($row=sql_fetch_array($result)) {

}

형태로 호출해보시면 될 겁니다.

답변에 대한 댓글 2개

while문을 돌리면 test page라는 내용도 않나오며, 둘다 호출해봐도 분명히 두테이블에 it_name컬럼에 동일내용이 있는데도 아무내용이 호출이 안되네요
2021-01-06 (수) 13:26:00
아래 답변하신 서버제로님 말씀처럼 쿼리문이 정상적인지 확인해보시고 쿼리문이 이상이 없다는 가정이라면 while 문이 동작하지 않을 이유가 없습니다. while 내부에서 test page 라는 문구를 echo 하신다면 쿼리가 단 1개라도 있다면 나와야 하는거죠.
2021-01-06 (수) 10:34:16

유니온으로는안되나요?

답변에 대한 댓글 1개

union은 두 테이블의 열개수가 동일해야하는걸로 알고있습니다.

답변을 작성하려면 로그인이 필요합니다.