نمایش نتایج 1 تا 11 از 11

نام تاپیک: کمک خواستن درباره یک کوئری نسبتا پیچیده

  1. #1

    کمک خواستن درباره یک کوئری نسبتا پیچیده

    سلام دوستان و اساتید
    یه 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 هست با توجه به زمان

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    خوزستان
    پست
    93

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    اگر درست فهمیده باشم:

    SELECT Post.*, loglog.log_date FROM Post, (
    SELECT temp.Post_id, temp.log_date
    FROM Log temp, Log temp2
    WHERE
    temp.status = 2 AND
    temp2.status = 2 AND
    temp.log_date >= temp2.log_date AND
    temp.id = temp2.id
    ) LogLog
    WHERE
    Post.Id = LogLog.Post_id
    آخرین ویرایش به وسیله rasoul_par : یک شنبه 05 خرداد 1392 در 21:48 عصر

  3. #3

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    خیلی ممنون از جوابت
    اما من متوجه نشدم چیکار کردی چون هم با temp آشنایی ندارم هم فکر کنم اشتباه تایپی داره کوئری ای که نوشتید چون مثالی که گفتم با کارم فرق میکنه متوجه نشدم چی شد؟
    میتونی یه جور دیگه بگی ؟ یا توضیح بدی کمی؟

  4. #4

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    کمک !!!!!!!!!!!!!!!

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    خوزستان
    پست
    93

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    temp چیز خاصی نیست، اسم جدول log رو temp گذاشتم.
    اون چیزی که من نوشتم اول میاد جدول log رو در خودش ضرب می کنه، بعد توی حاصلضرب میگرده دنبال رکوردهایی که log_date اونها از همه بزرگتره و استاتوس اونها برابر 2 و آی دی اونها برابره، بعد با جدول پست ضرب میکنه حاصل رو و پست رو با آخرین تاریخ log_date میاره.
    پ.ن: ببخشید، توی کوئری حواسم نبود آی دی ها رو چک نکردم.

  6. #6

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    ممنون لطف کردی

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    خوزستان
    پست
    93

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    درست شد؟

  8. #8

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    آره ممنون یه جور دیگه کوئری و نوشتم حل شد فقط چون دارم از Yii استفاده میکنم و توی Named Scope باید بکار ببرم خود Query بکارم نمیاد نمیدونم چطوری تبدیلش کنم به CDbCriteria

  9. #9

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    لطف میکنی اینو ببینی http://www.yiiframework.com/doc/api/1.1/CDbCriteria
    فکر نمیکنم دانش Yii بخواد (نمیدونم شاید شما استاد Yii هم باشی اتفاقی) ببین میتونیCDbCriteria معادل این کوئری رو بگی ؟؟

    SELECT *
    FROM (
    SELECT *
    FROM `tbl_log`
    ORDER BY logtime DESC
    ) `t1`
    GROUP BY `post_id`



  10. #10

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    مشکل رو به نحوی حل کردم
    ممنون از rasoul_par

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    خوزستان
    پست
    93

    نقل قول: کمک خواستن درباره یک کوئری نسبتا پیچیده

    عذر خواهی میکنم بابت تاخیر، من خودم یه بخشایی از داکیومنت Yii رو ترجمه کردم هرچند خیلی قوی نیست و مال وقتیه که داشتم یاد میگرفتم. میتونی از بخش Yii همین فروم دانلودش کنی!

تاپیک های مشابه

  1. کمک درباره نوشتن کوئری جستجوی سایت
    نوشته شده توسط farazjalili در بخش T-SQL
    پاسخ: 5
    آخرین پست: شنبه 04 خرداد 1392, 17:15 عصر
  2. حرفه ای: تبدیل یه لینک نسبتا پیچیده به کمک ریرایت مد
    نوشته شده توسط idocsidocs در بخش PHP
    پاسخ: 0
    آخرین پست: یک شنبه 27 آذر 1390, 12:34 عصر
  3. کمک جهت اخذ یک کوئری از یک جدول لاگ
    نوشته شده توسط ashena29 در بخش SQL Server
    پاسخ: 5
    آخرین پست: پنج شنبه 27 بهمن 1384, 09:01 صبح
  4. کمک خواستن در مورد اتصال به یاهو با دلفی
    نوشته شده توسط oracle در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: چهارشنبه 27 خرداد 1383, 14:10 عصر
  5. کمک خواستن برای خواندن بانکهای dat
    نوشته شده توسط saeid taheri در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: یک شنبه 06 اردیبهشت 1383, 02:02 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •