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

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

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    34

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



    السلام عليكم ورحمة الله وبركاته

    عندي قاعدة بيانات تتكون من 3 جداول ادخلت فيها مجموعة من المعلومات و اريد استخراج هده المعلومات /
    ما اريد استخراجه بالضبط هو اسم الشخص الذي لديه الرقم +2123654879 و +2129874548 في الجدول الثالث وله القيمة M في الجدول الثاني
    الجداول مترابطة فيما بعضها بمفاتيح اجنبية

    كود PHP:
    CREATE DATABASE `kalam`;

    CREATE TABLE `table1` (
      `
    idint(11NOT NULL auto_increment,
      `
    namevarchar(50NOT NULL,
      `
    phonevarchar(50NOT NULL,
      `
    nidint(11NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=InnoDB;

    -- 
    -- 
    Contenu de la table `table1`
    -- 

    INSERT INTO `table1` (`id`, `name`, `phone`, `nid`) VALUES 
    (1'kamal''nokia'1),
    (
    2'aziz''iphone'2);

    -- --------------------------------------------------------

    -- 
    -- 
    Structure de la table `table2`
    -- 

    CREATE TABLE `table2` (
      `
    idint(11NOT NULL auto_increment,
      `
    genrevarchar(50NOT NULL,
      `
    fidint(11NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=InnoDB;

    -- 
    -- 
    Contenu de la table `table2`
    -- 

    INSERT INTO `table2` (`id`, `genre`, `fid`) VALUES 
    (1'F'1),
    (
    2'M'2);

    -- --------------------------------------------------------

    -- 
    -- 
    Structure de la table `table3`
    -- 

    CREATE TABLE `table3` (
      `
    idint(11NOT NULL auto_increment,
      `
    numbervarchar(50NOT NULL,
      `
    fidint(11NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=InnoDB;

    -- 
    -- 
    Contenu de la table `table3`
    -- 

    INSERT INTO `table3` (`id`, `number`, `fid`) VALUES 
    (1'+2124578963'1),
    (
    2'+2124536598'1),
    (
    3'+2123654879'2),
    (
    4'+2129874548'2); 
    و جزاكم الله خير الجزاء امين





    الملفات المرفقة الملفات المرفقة


  2. #2
    عضو نشيط
    تاريخ التسجيل
    May 2010
    المشاركات
    35


    إبحث عن الاستعلامات الفرعية .. وحاول ان تفهم الفكره ..
    وإن لم تستطع سوف اساعدك ...






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    34


    شكرا اخي على الرد
    فقد حاولت معها لكن واجهتني بعض العقبات
    كود PHP:
    SELECT j.namej.counter
    FROM 
    (
    SELECT nameCOUNTn.id )  AS counter
    FROM TABLE1 n
    LEFT  JOIN TABLE2 c ON n
    .nid c.fid
    LEFT  JOIN TABLE3 t ON n
    .nid t.Fid
    WHERE t
    .number
    IN 
    '+2124578963',  '+2129874548')
    AND 
    c.genre =  'M'
    GROUP  BY n.id)j
    WHERE j
    .counter 
    الكود اعلاه يعطيني نتيجة لكن ليست المطلوبة فانا اريد اسم الشخص الذي لديه رقمين في الجدول الثالث و جنسه M في الجدول الثاني
    وشكرا






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    44


    جرب هذا الاستعلام

    كود PHP:
    select table1.name from table1 left join table2 on table1.id=table2.fid left join table3 on table1.id=table3.fid where table2.genre='M' and table3.number in('+2123654879','+2129874548'group by table1.name 







  5. #5
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    34


    شكرا اخي NASSER88 و majado2
    نتيجة محمودة لكن فيها بعض الشوائب مثلا ان قمت بتغيير احدى الرقمين سنحصل على نفس النتيجة و بالتالي النتيجة التي اريد يجب ان تحتوي على نفس عدد الرقمين في المصفوفة الافتراضية بتعبيير ادق الشخص الذي يتوفر بالضرورة على هذين الرقمين و شكرا جزيلا للجميع






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    44


    تفضل اخي هذا الاستعلام شغال

    كود PHP:
    select table1.name from table1 left join table2 on table1.id=table2.fid left join table3 on table1.id=table3.fid where table2.genre='M' and '+2123654879'=(select table3.number from table3 where table3.fid=table1.id and table3.number='+2123654879')  and '+2129874548'=(select table3.number from table3 where table3.fid=table1.id and table3.number='+2129874548'group by table1.name 







  7. #7
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    34


    شكرا اخي على الجواب الرائع
    الفكرة اعجبتني كثيرا
    شكرا مرة اخرى اخي الكريم






    التعديل الأخير تم بواسطة KALAM ; 25-07-2010 الساعة 01:50 AM





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

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

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