2012-07-31 99 views
0

如何在Mysql中選擇2條記錄中的最後日期?如何在Mysql中選擇2條記錄中的最後日期

表A

SID NAME Sex 
1 Jam M 
2 Da F 

表B

ID Title SID Date 
    1 A  1 2012-07-31 09:57:10 
    2 NULL 1 2012-07-31 09:57:13 
    3 A  2 2012-07-31 10:10:13 
    4 NULL 2 2012-07-31 10:57:13 

欲內連接這兩個表,

但僅選擇一個只記錄表B的(不同的SID的),其中標題不爲空然後顯示

最大標題爲空字段。

結果要空標題的最大日期:

ID Name Title SID Date 
1 Jam A  1 **2012-07-31 09:57:13** 
2 DA A  2 **2012-07-31 10:57:13** 

如何做到這一點?

回答

0
SELECT b.ID, a.NAME, b.Title, b.SID, b.Datea 
from tablea a left outer join 
    ((SELECT sid, MAX(datea) AS latest 
     FROM tableb 
      where title is not null 
      GROUP BY sid) AS dt 
INNER JOIN tableb b ON b.sid= dt.sid and b.datea=dt.latest) 
on a.sid=b.sid 
0

我覺得這樣的事情會爲你工作:

SELECT b.ID, a.NAME, b.Title, b.SID, b.Date 
FROM TABLEA a 
    INNER JOIN (SELECT SID, IFNULL(Title, "") AS Title, 
         MAX(IF(Title IS NULL, Date, NULL)) Date 
       FROM TABLEB GROUP BY SID) b 
     ON a.SID = b,SID; 
0

試試我的代碼(它的工作原理):

SELECT b.id, b.title, b.sid, b.date 
    FROM table_b as b 
    JOIN table_a as a ON a.sid = b.sid 
    WHERE b.id in (SELECT MAX(id) FROM table_b GROUP BY sid) 
+0

PLZ遵循代碼標準。爲mysql關鍵字使用CAPS。這將更容易閱讀 – diEcho 2012-07-31 04:46:42

+0

對不起,我是新手在這裏XD – 2012-08-01 06:31:05

相關問題