2013-02-07 2 views
0

두 테이블 사이의 가장 낮은 값을 찾기는 내가 TB1에 가입 할 때 어떻게 개별 행에서 가장 낮은 날짜를 찾을 수 있습니까 두 테이블의 TB1 및 TB2MySQL의 날짜

tb1 
----- 
tb1Id 

tb2 
----- 
tb2Id | tb1Id | dateTB2Submitted | timeIn

있습니다. 예를 들어 :

SELECT tb1.tb1id, 
     tb2.datetb2submitted, 
     tb2.timein 
FROM tb1, 
     tb2 
WHERE tb1.tb1id = tb2.tb1id 

+-------------+----------------------+----------+ 
| tb1.tb1Id | tb2.dateTB2Submitted | timeIn | 
+-------------+----------------------+----------+ 
|   1 | 2011-04-02   | 11:00:00  
|   1 | 2011-04-02   | 10:30:00  <--i want this 
|   2 | 2011-04-29   | 12:30:00  
|   2 | 2011-04-29   | 10:30:00  <--i want this 
+0

왜 사용하지 않는'순서를 시도? – jcho360

답변

0

이 시도 :

SELECT tb1.tb1id, 
     tb2.datetb2submitted, 
     Min(tb2.timein) AS timeIn 
FROM tb1 
     INNER JOIN tb2 
       ON tb1.tb1id = tb2.tb1id 
GROUP BY tb1.tb1id, 
      tb2.datetb2submitted 
+0

유일한 것은 dateTB2를 timeIn과 연결시켜야한다는 것입니다. tb1.tb1Id가 같지만 날짜가 다른 경우 두 항목이 모두 나타납니다. – user2052245

0

은 timeIn`하여이

SELECT tb2.tb2id, tb2.tb1id, tb2.datetb2submitted, Min(tb2.timein) AS timeIn 
FROM tb2 JOIN 
(
    SELECT tb1.tb1id, MIN(tb2.datetb2submitted) AS datetb2submitted 
    FROM tb1 INNER JOIN tb2 ON tb1.tb1id = tb2.tb1id 
    GROUP BY tb1.tb1id 
) AS lowestdate 
ON lowestdate.tb1id = tb2.tb1id AND lowestdate.datetb2submitted = tb2.datetb2submitted 
GROUP BY tb2.tb1id 
;