إستفسار : إستعلام لجلب آخر موضوع من كل تصنيف.

السلام عليكم ورحمة الله تعالى وبركاته.

لقد قمت ببرمجة موقع فيديوهات بسيط من باب تطبيق ماتعلمت في PHP و MySQL، قمت بإنشاء جدول يحتوي على

id - link - category

بحيث :

id : هو الرقم المميز لكل فيديو.

link : رابط الفيديو (الموقع أضع فيه فيديوهات اليوتيوب :)).

category : هو التصنيف الخاص بكل فيديو.

لنفرض أن لدي 10 مواضيع موزعين على ثلاث تصنيفات، أريد إستعلام يمكنني من استخراج آخر موضوع من كل تصنيف وأيضا أريد أن يشتغل بغض النظر عن عدد التصنيفات حيث يمكن أن تنقص أو أن تزيد.

شكرا لكم.


كما قال الاخ @assassinateur , يجب اضافة حقل لتخزين تاريخ/وقت اضافة كل صف (row)

بعدها ننتقل الى الاستعلام , اول الامر يجب ترتيب البيانات حسب التصنيف و تاريخ/وقت تصاعديا الاضافة

SELECT * FROM my_table ORDER BY category, created_on DESC;

و من ثم نستعمل جملة group by للحصول على اول صف من كل مجموعة حسب تصنيفها [انظر الصورة](http://i.imgur.com/GK1g8Mu....

SELECT tmp_table.* FROM 
    (SELECT * FROM my_table ORDER BY category, created_on DESC) tmp_table
GROUP BY category
ORDER BY category ASC;

مثال حي [انظر الرابط](http://sqlfiddle.com/#!2/d0...

شكرا جزيلا لك أخي الكريم هذا ماكنت أبحث عنه، لكني لم أفهم ماهو tmp_table فحسب ماأرى my_table هو الجدول. هل tmp_table هو إسم قاعدة البيانات أم ماذا ؟

tmp_table يمثل جدول مؤقت افتراضي , محتوياته هي ناتج الاستعلام

SELECT * FROM my_table ORDER BY category, created_on DESC

يمكنك الاطلاع اكثر على مفهوم الاستعلامات الفرعية من خلال الرابط