join - how to filter repeated rows using DATE in Mysql -


i have 4 tables , using left join merge tables , work fine.

this query using

   select cont_details.* depot_tracking    left join depot_details    on depot_tracking.depot_details_id = depot_details.depot_details_id    left join cont_details     on depot_tracking.cont_details_id = cont_details.cont_no    depot_details.depot_city = "maa"    , depot_tracking.status = "0" , depot_tracking.gate_out ="" 

and getting out !

--------------------------------------------  cont_details_id  |    gate_in  | cont_no --------------------------------------------        1          | 05-05-2015  |  dd        1          | 13-04-2015  |  cc        2          | 23-03-2015  |  bb        3          | 15-05-2015  |  aa        1          | 21-02-2015  |  dd        3          | 25-05-2015  |  cc        2          | 30-03-2015  |  bb        4          | 15-05-2015  |  aa 

now want filter repeated rows based on depot_tracking.gate_in column.

in image there con_details_id (1) come 2 time want 19-04-2015 (last date) maximum date , rest has filter, same 2 , 3 ,4 ,5 ,etc..,

the problem can't change gate_in column date format used change column string date formate using below query

(str_to_date(d.gate_in,'%d-%m-%y'))  

so please me filter repeated rows (only show maximum date rows )

expecting output now

--------------------------------------------  cont_details_id  |    gate_in  | cont_no --------------------------------------------        1          | 05-05-2015  |  dd        3          | 25-05-2015  |  cc        2          | 30-03-2015  |  bb        4          | 15-05-2015  |  aa 

just order table group id

select   *   (     select       *           table1     order       cont_details_id asc, gate_in desc   ) origin group   origin.cont_details_id 

replace table1 result now

sql fiddle: http://sqlfiddle.com/#!9/b90d5/1/0


Comments