2012-07-31 4 views
0

MySQL의 2 개 레코드에서 마지막 날짜를 선택하는 방법은 무엇입니까?MySQL의 2 레코드에서 마지막 날짜를 선택하는 방법

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 

내가 내부 싶은

SID NAME Sex 
1 Jam M 
2 Da F 

표 B가 두 테이블을 조인 표,

하지만 (SID의 구분) 전용 테이블 B의 한 레코드를 선택 곳 제목이 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** 

어떻게 그렇게 할 수있는 :

결과는 널 타이틀의 가장 큰 날짜를 원하는?

답변

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

+0

미안 해요, 난 여기 뉴비 XD 야 –

관련 문제