sql 질문드려요

sql 질문드려요

QA

sql 질문드려요

답변 2

본문

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

 

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

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #sql ×
전체 728
© SIRSOFT
현재 페이지 제일 처음으로