sql 질문드려요
본문
<?php $sql = "select * from ".$g5['product_phone_table']." where(1); $que = sql_query($sql); while ($row = sql_fetch_array($que)) { $list_it_id = $row['it_id'];
$sql2 = "select max(po_grant) as max from ".$g5['phone_point_table']." where it_id = '".$list_it_id."'"; 위와 아래 다른점이 있나요?? $sql2 = "select max(po_grant) as max from ".$g5['phone_point_table']." INNER JOIN ".$g5['product_phone_table']." ON ".$g5['phone_point_table'].".it_id = ".$g5['product_phone_table'].".it_id"; 둘다 phone_point 테이블과 product_phone 테이블의 it_id를 비교해서 max값을 가져오는거 아닌가요?? 위와 아래의 결과값이 다르게 나오는 이유를 모르겠는데 아시는분 설명좀 부탁드려요 $row2 = sql_fetch($sql2);
답변 2
select max(po_grant) as max
from [table_A]
where it_id = 10
=> it_id 가 10인 레코드의 po_grant 값과 동일합니다. max()를 사용하지 않아도 동일한 결과입니다.
아래의 쿼리로 사용하는 것이 맞을 것 같습니다.
select max(po_grant) as max
from [table_A] a
inner join [table_B] b on a.it_id = b._it_id
=> 두 테이블의 일치하는 it_id 가 10, 11, 12, 13, 14, 15 라면.. 5개의 레코드 po_grant 값 중에 가장 큰 값을 가져오게 됩니다.
!-->!-->
두번째 쿼리에서 it_id 별로 group 하면 같은 it_id 에 대해서는 같은 값이 나오겠네요
답변을 작성하시기 전에 로그인 해주세요.