2011-09-13 4 views
2

에 대한 최신의 행과, 날짜별로 정렬 : 당연히 나는 쿼리를 많이 단순화,하지만 당신은 특히 얻을 나는 다음과 같은 쿼리 데이터를 검색하고, 테이블을 만들려면 각 제품

SELECT cId,cProductId,cDate,cInfo FROM tProduct ORDER BY cProductId ASC,cDate ASC; 

동일한 제품에 대한 많은 레코드가있을 수 있으며 가장 최근에 내가 관심있는 단 하나의 쿼리 일 수 있습니다. 즉, 내 쿼리를 순서 지정하는 방법 : 필자는 while 루프에서 만나는 마지막 행의 정보 만 저장합니다.

while (($row = $result->fetch()) !== FALSE) 
{ 
     if(!empty($row[0])){ 
      if(($table_row[1]!=$row[1])&&(!empty($table_row[0]))){ 
       //Display the last row saved 
      } 
      $table_row= array($row[0],$row[1],$row[2],$row[3]); 
     } 
} 

이제 생성 된 html 테이블에 대한 정렬 옵션을 구현하고 싶습니다. 세션 변수에 정렬 정보를 저장하겠습니다. 정렬 옵션 중에 날짜순으로 정렬 할 수 있기를 원합니다. 날짜별로 쿼리를 주문하는 동안 각 제품에 대한 최신 행만 검색하려면 어떻게해야합니까?

답변

3

쿼리에 FROM 절을 포함시키지 않았습니다. 그러나 제품 ID 당 최신 행이 필요하다고 가정하면 다음과 같이 할 수 있습니다.

SELECT cId,cProductId,cDate,cInfo 
FROM tProduct t1 
WHERE cDate = (SELECT max(cDate) FROM tProduct t2 where t1.cProductID = t2.cProductId) 
ORDER BY cProductId ASC,cDate ASC; 
+0

오른쪽에 FROM 절을 잊어 버렸으므로 이제 수정했습니다. – Eldros

+0

내 대답에 테이블 이름을 업데이트했습니다. –

관련 문제