النتائج 1 إلى 6 من 6

الموضوع: مساعدة في استعلام sql

  1. #1

    مساعدة في استعلام sql



    السلام عليكم

    لدي جدولين ..

    جدول التصنيفات و هو كالتالي :

    id | title
    -------------
    1 | title1
    __________
    2 | title2
    __________
    3 | title3
    __________


    و جدول الاخبار و هو كالتالي :

    id | category | title
    -------------------------------
    1 | 1,3 | title1
    -------------------------------
    2 | 1,2 | title2
    -------------------------------
    3 | 2,3 | title3
    -------------------------------
    4 | 3,1 | title4

    اريد استعلام يجلب لي المقالات او الاخبار في القسم الذي يحمل الاي دي 2 مثلاً

    جربت الاستعلام بواسطة WHERE .. IN لكنه جلب لي التالي :


    id | category | title
    -------------------------------
    3 | 2,3 | title3
    -------------------------------

    و انا اريده ان يجلب :


    id | category | title
    -------------------------------
    2 | 1,2 | title2
    -------------------------------
    3 | 2,3 | title3
    -------------------------------

    فما هي صيغة الاستعلام المناسبة ..

    ارجو تعاونكم .

    و شكراً لكم مقدماً .





    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    789


    وعليكم السلام

    اخى طريقتك ستأثر عليك على المدي الطويل، فأنصحك بعمل جدول relationships بين الاخبار و الاقسام وطبعاً تقوم بعمل INDEX علي الاقسام لكي يسرع عملية البحث، فالبحث على intger اسرع من varchar

    اما على الطريقة الذي تريدها فلا اعتقد انه سيكون هناك طريقة لعمل ذالك، لآنك لا تلتزم بتنسيق معين

    و WHERE IN لا يأخذ 0,0 لانه يجب ان يكون الحقل منفرد بهذى الحاله وليس كالمثال الى ذكرته

    حين تقوم بطلب مثل هذا

    كود:
    SELECT * FROM table WHERE id IN(1,2);
    سيقوم بالبحث بهذا الشكل

    كود:
    SELECT * FROM table WHERE id = 1;
    SELECT * FROM table WHERE id = 2;

    وسيجمع النتايج لك في مصفوفه واحده





    التعديل الأخير تم بواسطة ArabCoders ; 23-05-2011 الساعة 08:35 PM
    __________________
    متى استعبدتم الناس وقد ولدتهم أمهاتهم أحرار........
    -----------------------------------
    شبكة الشعر الادبيه

  3. #3
    عضو فعال
    تاريخ التسجيل
    Feb 2008
    المشاركات
    1,589


    معذرة شكل الجداول الي انت حاططها يلخبط شويه ^_^
    لكن
    ان كان كل قسم به اكتر من يحمل اكثر من خبر
    وكل خبر ممكن ان يكون موجود في اكثر من قسم
    فالعلاقه بين الكيانين علاقه many to many

    ولابد من ان تقوم بفكها الي جدول اخر وسيط
    ياخد البرايمري كي من الجدول الاول , والرايمري كي من الجدول الثاني
    .....................................................
    ايضا
    لو افترضنا ان العلاقه ليست مني تو مني
    فالمفترض لو كانت وان تو مني
    بكون في حقل اضافي في احد الجدولين
    وهو البرايمري كي بتاع الجدول التاني
    بحيث في عملية الاستعلام بيكون
    select * from news where depid = 2 ;
    اعتقد والله اعلم يجب مراجعه تصميمك لقاعدة البيانات
    فبهذه الطريقة هي متعبه
    ان كنت فهمتهاانا بالشكل الصحيح






  4. #4


    شكراً لكم و ما قصرتم ..

    سؤال آخر هل هناك دالة مماثلة لـ explode في الـ SQL

    أخي ArabCoders طريقتك هي التي اتبعها لكنني اردت تقليل عدد الجداول لكن اذا كانت مرهقة فسأستغني عنها لأن المشروع ضخم و قد تؤثر على أداء البرمجية كما قلت انت ..

    على العموم اشكركم لردودكم التي افادتني
    اتمنى لكم التوفيق





    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS

  5. #5
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    assyrian-php ، يمكنك وضع أرقام الأقسام في جدول المقالات أو الأخبار بالطريقة التالية:
    |1||2||3|

    لاحظ ان كل رقم يحيط به "|" من كل جهة، بهذه الطريقة يمكنك الاستعلام بعبارة :
    كود:
    LIKE '%|1|%'
    على سبيل المثال!

    لكن تخيل أن هناك آلاف السجلات، هذا يعني أنه سيبحث داخل كل سجل. لو أنك تستخدم جدولاً آخر للربط المسألة ستكون أفضل في حالة النتائج الكثيرة. وجود جدول إضافي لا يعني بطء العملية، في أحيان كثيرة يكون استخدام جدولين أسرع من جدول واحد لنفس الغرض.

    تحياتي،





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  6. #6


    شكراً اشرف ..

    بالفعل انا استخدم الربط عن طريق جدول وسيط

    ما جعلني ابحث في هذا الموضوع هو رغبتي في تقليل عدد الجداول خاصة ان المشروع الذي اعمل عليه ضخم

    شكراً لك مجدداً اخي اشرف .





    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض