2016-11-01 2 views
1

mysql을 주문하고 그룹화하려고합니다. 이 내 테이블 :Mysql에서 그룹화하기 주문하기

|------ 
|Column|Type|Null|Default 
|------ 
|//**id**//|int(11)|No| 
|consultantid|int(11)|Yes|NULL 
|startdate|datetime|Yes|NULL 
|enddate|datetime|Yes|NULL 
|target|varchar(255)|No| 
|dateinserted|datetime|No|CURRENT_TIMESTAMP 
== Dumping data for table consultant_targets 

|1|1|2016-11-01 00:00:00|2016-11-29 00:00:00|10000|2016-10-31 21:34:55 
|2|1|2016-10-31 00:00:00|2016-11-23 00:00:00|15000|2016-10-31 22:03:09 

두 번째 기록 이후 처음보다 삽입하고, 내가 얻을 찾고있는 무슨 이잖아 - 그냥 최신 하나 잡아 것이 이들의 50 있었다 그래서 만약.

SELECT 
    * 
FROM 
(
    SELECT 
     ct.*, 
     u.username, 
     u.colorcode 
    FROM 
     consultant_targets ct 
     INNER JOIN user u ON u.id = ct.consultantid 
    ORDER BY 
     dateinserted desc 
) AS ctu 
GROUP BY 
    consultantid 

그러나 메신저 단지 첫 번째 행마다 점점 10000 대상과 하나가

+0

없다 이것은 내 SQL입니다 ORDER BY 절을 하위 쿼리에 적용합니다. SQL Server는 그것을 허용하지 않으며 MySQL이 MySQL을 무시한다고 생각합니다. – Dai

답변

1

사용할 수 NOT EXISTS() :를 추가 할 이유가

SELECT t.*, 
     u.username, 
     u.colorcode 
FROM consultant_targets t 
INNER JOIN user u 
ON u.id = t.consultantid 
WHERE NOT EXISTS(SELECT 1 FROM consultant_targets s 
       WHERE t.consultantid = s.consultantid 
        AND s.dateinsereted > t.dateinsereted) 
+0

감사합니다. –