إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

Sub Quary


3 رد (ردود) على هذا الموضوع

#1 hima123

hima123

    عضو

  • الأعضــاء
  • 18 مشاركة

تاريخ المشاركة 22 June 2009 - 04:16 PM

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

انا الحمد لله ماشي في الكورس كويس

بس في حاجات واقعة مني وشم عارف افهمها

قلت ادخل اشوف المهندسين الي علي حق انا متاكد انهم هيقدورا يساعدوني

انا واقف عند Sub Quary

ومش فاهمها

المهندس كان اعطانا مثال ومش فاهمه المثال اهوت ولو في حد عنده مثال تاني يبقي احسن

select * from employees
where salary>(select*from employees
where emp_id=200)

وقال كمان حاجة عن

single raw
multi raw

ولم يشرحهم

ارجو المساعدة

تحياتي للجميع

#2 MTSHAJALI

MTSHAJALI

    عضو مميز

  • الأعضــاء
  • 683 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 22 June 2009 - 04:48 PM

هذه الجملة في هذه الحالة ستعطيك رسالة خطأ محتواها:
too many values

لأن الشرط في الجزء الثاني من الاستعلام يقوم باستدعاء جميع القيم الخاصة بالجدول ولكن مقارنة مع الجملة الشرطية فانك تستعلم عن طريق الراتب
وبالتالي يجب ان تكون كالتالي:

select * from employees where salary>(select salary from employees where emp_id=200);


ولكن ايضا هذه الجملة ستعطيك رسالة خطأ الا وهي:
single-row subquery returns more than one row

وهذا الخطأ معناه بأن الجملة الثانية ستقوم بارجاع اكثر من راتب لكل موظف وهذا خطأ

ولكن الجملة لتكون صحيحة فيجب ان تكون كالتالي:
select * from employees where salary in (select salary from employees where emp_id=200);



ارجو ان يكون توضيحي صحيحا وان لم يكن كذلك فارجو من الاخوة تصحيحي للافادة

وشكرا

ما اوقع على شيء ما اعرفه


#3 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 22 June 2009 - 05:10 PM

السلام عليكم
أخي الكريم
rose_4pretty
للتوضيح فقط
الجملة الاولي الاي حضرتك كتبتها صحية ولا خطأ فيها لانك هتخرج من subquery نتيجة واحدة وبالتالي يمكنك المقارنة بمعامل <

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#4 MTSHAJALI

MTSHAJALI

    عضو مميز

  • الأعضــاء
  • 683 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 23 June 2009 - 08:20 AM

السلام عليكم
أخي الكريم
rose_4pretty
للتوضيح فقط
الجملة الاولي الاي حضرتك كتبتها صحية ولا خطأ فيها لانك هتخرج من subquery نتيجة واحدة وبالتالي يمكنك المقارنة بمعامل <



شكرا اخي مصطفى

لقد قمت بتجربتها مرة اخرى وكانت صحيحة

اسف على الخطأ وشكرا لك للتوضيح

تم التعديل بواسطة rose_4_pretty, 23 June 2009 - 08:28 AM.

ما اوقع على شيء ما اعرفه