简体   繁体   中英

select distinct where max date

I have 2 a table named "maintenances" and another "processes" and "cars". maintenances:

id   car_id   process_id   date
1     1        1           4/26/2013
2     1        1           5/26/2013
3     1        2           5/26/2013

I want to select distinct values for car_id and process_id repeated based on max date. So I want:

id   car_id   process_id   date
2    1          1          5/26/2013
3    1          1          5/26/2013

I have this:

SELECT m.*, u.username, c.milage, p.*, s.name
                                    FROM maintenances as m
                                         LEFT JOIN users AS u
                                         ON u.id = m.user_id 
                                         LEFT JOIN cars AS c
                                         ON c.id = m.car_id
                                         LEFT JOIN processes as p
                                         ON p.id = m.process_id
                                         LEFT JOIN services as s
                                         ON s.id = m.service_id
                                    Group by m.car_id, m.process_id

But this gives me :

id   car_id   process_id   date
 1    1          1          4/26/2013
 3    1          2          5/26/2013

I want:

 id   car_id   process_id   date
  2    1          1          5/26/2013
  3    1          2          5/26/2013

Try to join maintenances with a subquery with MAX(date) :

  SELECT m.*, u.username, c.milage, p.*, s.name
  FROM maintenances as m
  JOIN 
      (SELECT car_id, process_id, MAX(date) as MAX_DATE 
       FROM maintenances  
       GROUP BY by car_id, process_id) as MAX_T ON m.car_id = MAX_T.car_id 
                    AND m.process_id = MAX_T.process_id 
                    AND m.date = MAX_T.MAX_DATE
  LEFT JOIN users AS u ON u.id = m.user_id 
  LEFT JOIN cars AS c ON c.id = m.car_id
  LEFT JOIN processes AS p ON p.id = m.process_id
  LEFT JOIN services AS s ON s.id = m.service_id

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM