PDA

View Full Version : راهنمایی برای یک دستور اسکیوال تودرتو



پروگرامنویس
پنج شنبه 29 فروردین 1392, 18:26 عصر
سلام من توثمت کنترل پتل سایت میخوابم اطلاعات کامنت های جدیدی که هنوز تایید نشده رو برای مدیر توی صقحه لود کنم تا درصورت تمایل تایید و در سایت نمایش داده شه. من دوتا جدول دارم یکی واسه پست ها و اون یکی برای کامنت های پست ها.
فیلدهای جدول پست:
آیدی-دسته(کتاب،فیلم،)-گروه(طراحی،برنامه نویسی)-مسیرفایل-عنوان-متن-نام نویسنده-نام کاربری نویسنده-تاریخ-حالت.
فیلدهای جدول کامنت:
آیدی-آیدی پست-دسته(کتاب،فیلم،)-گروه(طراحی،برنامه نویسی)-عنوان-نام کامنت گذار-متن کامنت-تاریخ کامنت- حالت

گمون کنم یه سری از فیلدهای جدول کامنت زیادی هستش ولی اگه اینا نباشن تو یه جا به مشکل برمی خورم که اگه شما کمکم کنید ممنون میشم.

سناریوی کار:
توی صفحه کامنتهای تازه از جدول کامنت اونایی لود میشن که مقدارفیلد حالتشون "بررسی نشده" باشه.
اطلاعاتی که به کاربر نمایش داده میشه ایناس:
اطلاعات مربوط به پست(دسته-گروه-عنوان)
اطلاعات مربوط به کامنت(نام کامنت گذار-متن کامنت-تاریخ کامنت)

حالا اگه من این فیلدهای اضافی(اصطلاحشو یادم رفته) رو بخام پاک کنم(دسته-گروه-عنوان) و فقط فیلد آیدی پست رو بعنوان کلید خارجی تو این جدول باقی بزارم ،نمی دونم چطور باید مقدارهای لازم رو از جدول مربوطه پست ها واکشی کنم.می دونم که به یه دستور اسکیوال تودرتو نیازه که بگه اول اونایی رو از جدول کامنت سلکت کن که فیلد حالتشون"بررسی نشده باشه و بعد توی این مفدارها برو از جدول پست دنبال اونایی بگرد که فیلد آیدی شون برابر با فیلد آیدی پست جدول کامنت باشه.
ممکنه کوئری این کار رو برام بزارید

ببخشید که یکم گنگ شد چون واقعا الان عجله دارم اما امیدوارم منظورم رو فهمیده باشید.

rasoul_par
سه شنبه 03 اردیبهشت 1392, 01:58 صبح
اگر درست منظورتو فهمیده باشم باید همچین چیزی باشه:
SELECT Post.ID, Post.Group, Post.Title, Comm.User, Comm.Text, Comm.Date FROM Comm, Post WHERE Post.ID = Comm.PostID AND Post.ID IN (SELECT C.PostID FROM Comm C WHERE C.Status = 'meqdareFieldeStatuse')
میشه بهینه تر هم کرد این کوئری رو با JOIN ها!