2013-02-07 41 views
0

兩個表之間的最低值,我有兩個表TB1和TB2的MySQL找到日期

tb1 
----- 
tb1Id 

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

如何找到各行最低的日期,當我加入TB1。例如:

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

唯一的是我將不得不concat dateTB2submitted與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 
;