p30tec
یک شنبه 05 خرداد 1392, 15:23 عصر
سلام دوستان و اساتید
یه MySQL Query رو هر چقدر فکر کردم نتونستم بنویسم کسی میتونه کمکی کنه
ببینید من دو تا جدول دارم به این صورت (برای اینکه ساده تر توضیح بدم جدولها رو فرضی و ساده نوشتم)
جدول اول Post
ID
Title
Content
جدول دوم Log
ID
Status
Log_Time
Post_ID
خوب ببینید هر دو جدول Storage Engine=InnoDB هست و Log.Post_ID کلید خارجی هست که به Post.ID اشاره میکنه
فرض کنید یه سری داده توی Post داریم
و داده های Log به این صورت هست که برای هر Post چندین Log وجود داره یعنی یه ارتباط 1:N و N:1 داریم
داده های فرضی برای Log به این صورت هستند (متاسفانه توی ابزارهای ایجاد تاپیک جدول نیست و مجبورم نامرتب بگم)
ID=1
Status=0
Log_Time=2013-01-01
Post_ID=1
ID=2
Status=1
Log_Time=2013-01-02
Post_ID=1
ID=3
Status=2
Log_Time=2013-01-03
Post_ID=1
ID=4
Status=0
Log_Time=2013-01-01
Post_ID=2
جدول لاگ به این صورت هست که هر وقت وضعیت پست عوض شد وضعیت جدید با زمان لاگ توش ثبت میشه
حالا چه کوئری ای میتونه این عمل رو انجام بده ؟؟
میخوام تمام پست هایی که آخرین وضعیتشون مثلا دو هست رو انتخاب کنم
آخرین وضعیت مطابق جدول لاگ و بر اساس زمان مشخصه مثلا آخرین وضعیت پست شماره یک توی داده هایی که دادم 2 هست با توجه به زمان
یه MySQL Query رو هر چقدر فکر کردم نتونستم بنویسم کسی میتونه کمکی کنه
ببینید من دو تا جدول دارم به این صورت (برای اینکه ساده تر توضیح بدم جدولها رو فرضی و ساده نوشتم)
جدول اول Post
ID
Title
Content
جدول دوم Log
ID
Status
Log_Time
Post_ID
خوب ببینید هر دو جدول Storage Engine=InnoDB هست و Log.Post_ID کلید خارجی هست که به Post.ID اشاره میکنه
فرض کنید یه سری داده توی Post داریم
و داده های Log به این صورت هست که برای هر Post چندین Log وجود داره یعنی یه ارتباط 1:N و N:1 داریم
داده های فرضی برای Log به این صورت هستند (متاسفانه توی ابزارهای ایجاد تاپیک جدول نیست و مجبورم نامرتب بگم)
ID=1
Status=0
Log_Time=2013-01-01
Post_ID=1
ID=2
Status=1
Log_Time=2013-01-02
Post_ID=1
ID=3
Status=2
Log_Time=2013-01-03
Post_ID=1
ID=4
Status=0
Log_Time=2013-01-01
Post_ID=2
جدول لاگ به این صورت هست که هر وقت وضعیت پست عوض شد وضعیت جدید با زمان لاگ توش ثبت میشه
حالا چه کوئری ای میتونه این عمل رو انجام بده ؟؟
میخوام تمام پست هایی که آخرین وضعیتشون مثلا دو هست رو انتخاب کنم
آخرین وضعیت مطابق جدول لاگ و بر اساس زمان مشخصه مثلا آخرین وضعیت پست شماره یک توی داده هایی که دادم 2 هست با توجه به زمان