इसे पढ़ें:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684
मैं जो समझता हूं, उसके लिए आपका cudsubq.new_user_id
NULL
हो सकता है भले ही दोनों टेबल user_id
. से जुड़े हों , इसलिए, आपको NOT IN
. का उपयोग करके परिणाम प्राप्त नहीं होंगे ऑपरेटर जब सबसेट में NULL
होता है मान . लेख में उदाहरण पर विचार करें:
select * from dual where dummy not in ( NULL )
यह कोई रिकॉर्ड नहीं देता है। NOT EXISTS
का उपयोग करके देखें ऑपरेटर या किसी अन्य प्रकार का जुड़ाव। यहाँ एक अच्छा स्रोत है:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
और आपको चौथा उदाहरण चाहिए:
SELECT COUNT(descr.user_id)
FROM
user_profile prof
LEFT OUTER JOIN user_desc descr
ON prof.user_id = descr.user_id
WHERE descr.new_user_id IS NULL
OR descr.new_user_id != prof.user_id