0 امتیاز
قبل در برنامه نویسی توسط (982 امتیاز)
ویرایش شده قبل توسط

چگونه میتوان در MySQL به ازای چند رکورد با یک رکورد parent یکسان تنها آخرین رکورد ایجاد شده را استخراج کرد؟

 داده اصلی

date            id        parentid

----------------------------------------------------------

1              1                  02/10/2015 13:52:56
4              1                  02/09/2015 18:36:35
6              4                  02/09/2015 23:13:05
7            10                  02/10/2015 12:45:34
8            10                  02/09/2015 17:46:15

 

داده مرتب شده:

date            id        parentid

------------------------------------------------------------

1              1                  02/10/2015 13:52:56
7            10                  02/10/2015 12:45:34
6              4                  02/09/2015 23:13:05

1 پاسخ

+2 امتیاز
قبل توسط (330 امتیاز)
ویرایش شده قبل توسط

روش های مختلفی هست فقط باید تست کرد کدام بهینه تر هست

select a.parentid, a.id, a.date
from table a
inner join (
    select id, max(date) as latest
    from table
    group by id
 ) b on a.id = b.id and a.date = b.latest 

می شه از subquery هم استفاده کرد.بهترین راه window function ها هستند که فکر می کنم msql فانکشن row-number ساپورت نمی کنه.

سوالات مشابه

0 امتیاز
1 پاسخ 468 بازدید
0 امتیاز
1 پاسخ 1.8هزار بازدید
0 امتیاز
1 پاسخ 3.3هزار بازدید
0 امتیاز
2 پاسخ 733 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط IMANAZADI (72 امتیاز)
0 امتیاز
1 پاسخ 366 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط IMANAZADI (72 امتیاز)
+1 امتیاز
1 پاسخ 734 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
0 امتیاز
0 پاسخ 1.1هزار بازدید
...