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

حاجة مش منطقية!


Hossam.m

Recommended Posts

السلام عليكم
الجملة دى

SELECT employee_id, manager_id
           FROM employees
           	WHERE employee_id  NOT IN
			(SELECT manager_id 
			 FROM employees);


طبعا الغير منطقى بالمرة انه بيقولك no row selected
المفروض كان يطله الموظفين اللى مش موجودين فى جدول المديرين "اللى هما مش مديرين على اى حد"
تمام انا فاهم المشكلة وهى انه KING ملهوش manager فبيطلع null فى نواتج الinner query
وده لسبب ما! بيخلى ال not in تشتغل كأنها <> ALL
اشمعنا فى الحالة دى و ليه لازم استخدم where manager_id is not null فى ال inner query!
وليه IN شغالة عادى من غير مشاكل مع ان فيها NULL فبيجيب KING فى النواتج بعكس NOT IN اللى مش بتجيب اى حاجة!
ياريت حد يفهمنى
وفرضا انى عاوز اعرف الموظفين اللى مش مديرين على حد بما فيهم اللى MANAGER_ID IS NULL
اعمل ايه!

رابط هذا التعليق
شارك

عندك حق تتعجب ... لأنه سواء فيحالة الـ NOT IN و حالة الـ IN بيحصل مقارنة بين قيمة وبين NULL



و في شرح الـ Material ما وضحش التفسير انما قالانه في حالة مقارنة بين قيمة و بين NULL يؤدي إلىNULL فقط في حالة NOT IN انما يعطي نتيجة في حالة الـ IN



طبعابيقول ان NOT IN تكافيء <>ALL فيالنتيجة و ان الـ IN تكافيءالـ =ANY فيالنتيجة كمعلومة مش سبب.



The reason is that all conditions that compare a nullvalue result in a null. So whenever null values are likely to be part of theresults set of a subquery, do not use the NOT IN operator. The NOT IN operatoris equivalent to <> ALL.





اما لو عاوز تعرف الموظفين اللى مش مديرين على حد بما فيهم اللى MANAGER_ID IS NULL

SELECT last_name, manager_id FROM employees

WHERE  employee_id NOT IN

                   	(SELECT nvl(manager_id ,0)

                		FROM   employees);




SELECT last_name, manager_id FROM employees

WHERE  employee_id NOT IN

                   	(SELECT manager_id 

                		FROM   employees 

                		WHERE  manager_id IS NOT NULL);



لأن الـ manager_id IS NOT NULL موجودة في الـ INNER Query و ليست في الـ Main Query



مع تحياتي ,,,

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية