PDA

View Full Version : حرفه ای: آخرین محصولات هر گروه با یک کوئری؟



peyman_abdollahy
پنج شنبه 26 شهریور 1394, 10:20 صبح
سلام
می خوام آخرین محصولاتی که تو دسته های مختلف وارد شدند را انتخاب کنم ، البته با یک کوئری و نه اینکه دسته ها رو انتخاب کنم و بعد بیام برا هرکدوم دوباره یک کوئری بنویسم.
کسی میتونه کمک کنه؟
procts-table
id category_id name

category_table
id category_name

parsboy
پنج شنبه 26 شهریور 1394, 11:01 صبح
سلام
می خوام آخرین محصولاتی که تو دسته های مختلف وارد شدند را انتخاب کنم ، البته با یک کوئری و نه اینکه دسته ها رو انتخاب کنم و بعد بیام برا هرکدوم دوباره یک کوئری بنویسم.
کسی میتونه کمک کنه؟
procts-table
id category_id name

category_table
id category_name



Last record:
SELECT <some columns> FROM mytable
<maybe some joins here>
WHERE <various conditions>
ORDER BY date DESC
LIMIT 1

peyman_abdollahy
پنج شنبه 26 شهریور 1394, 14:13 عصر
برای هر گروه یا کتگوری با یک کوئری. یعنی اگر5 تا کتگوری داری یک کوئری بنویسی و 5 رکورد هر کدومشو بدست بیاری که در مجموع میشه 25تا

Unique
جمعه 27 شهریور 1394, 21:45 عصر
اینجا کامل توضیح داده (http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/) (کمی برو پایین Select the top N rows from each group) ،‌ اما من توصیه نمیکنم ! Sql با Subquery و این شکل از نوشتار خیلی تر و تمیز در نمیاد. اگه من باشم هر بار توی یک دسته یک محصول اضافه یا کم میشه میام و N تای آخری که میخوام را cache میکنم و به بازدیدکننده در زمان درخواست نشون میدم. کلا با cache کردن میشه بهتر و تمیز تر انجامش داد.

peyman_abdollahy
یک شنبه 29 شهریور 1394, 15:38 عصر
cache ? با کش اشنا نیستم ، به گوشم خورده اما فکر نمی کردم تو همچین مورد هایی کاربر داشته باشه. میتونی بیشتر توضیح بدی؟

Unique
دوشنبه 30 شهریور 1394, 00:36 صبح
cache کار خاصی نیست دوست عزیز ، برخی محاسبات یا خروجی ها کلا منابع سستم را بیش از حد درگیر میکنه مخصوصا اگه بخوایم برای هر بازدید اون ها را از اول محاسبه یا ایجاد کنیم. برای جلوگیری از هر بار تکرار کردنش میایم و پس از اینکه یکبار انجام شد نتیجه را مثلا میریزم توی یک فایل و دفعات بعد به جای اون همه عملیات محتوای فایل cache شده را میخونیم. هر بار هم پروسه ای باعث تغییر در این محتوا شد (مثلا در مورد مثال شما اگه محصولی اضافه یا حذف شد) فایل cache را مجددا بازنویسی میکینم. همین.

peyman_abdollahy
دوشنبه 30 شهریور 1394, 09:24 صبح
بله بیشتر ی تکنیکه ، حالا میتونه توی یک فایل یا تو ی جدول دیگه باشه.