0

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

これらの2つのテーブルを内部結合したいのですが、

ただし、タイトルがnullではないテーブルB(SIDの区別)のレコードを1つだけ選択してから、

タイトルの最大の日付はnullフィールドです。

結果は、最大の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**

どうやってするか ?

4

3 に答える 3

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;
于 2012-07-31T04:09:05.207 に答える
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
于 2012-07-31T04:12:38.987 に答える
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)
于 2012-07-31T04:43:59.403 に答える