【问题标题】:How to select last date in 2 record in Mysql如何在Mysql的2条记录中选择最后一个日期
【发布时间】:2012-07-31 04:01:35
【问题描述】:

如何在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 不同)的一条记录,其中标题不为空,然后显示

标题的最大日期为空字段。

结果要最大 Date of Null 标题:

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**

怎么做?

【问题讨论】:

    标签: mysql


    【解决方案1】:
    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
    

    【讨论】:

      【解决方案2】:

      我认为这样的事情对你有用:

      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;
      

      【讨论】:

        【解决方案3】:

        试试我的代码(它有效):

        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)
        

        【讨论】:

        • 请遵循代码标准。对 mysql 关键字使用 CAPS。这样会更容易阅读
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        • 2017-02-09
        • 1970-01-01
        • 2020-12-12
        相关资源
        最近更新 更多