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개

채택된 답변
+20 포인트

Copy
select max(po_grant) as max 
  from [table_A]
 where it_id = 10

=> it_id 가 10인 레코드의 po_grant 값과 동일합니다. max()를 사용하지 않아도 동일한 결과입니다.

아래의 쿼리로 사용하는 것이 맞을 것 같습니다.
  

Copy
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 값 중에 가장 큰 값을 가져오게 됩니다.

 

※ https://www.w3schools.com/sql/sql_min_max.asp

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아........ 그런거였군요
아예 다른 쿼리였네요...
답변 감사합니다~

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

두번째 쿼리에서 it_id 별로 group 하면 같은 it_id 에 대해서는 같은 값이 나오겠네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

위 방식과 아래 방식이 다른건가요???

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

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

로그인
🐛 버그신고