मैं orgid = 2
पर डेटा प्राप्त करना चाहता हूं या uid
के लिए कोई पंक्ति नहीं है। orgid
एक integer
है। IS NULL
करने के लिए मुझे लगता है कि सबसे नज़दीकी चीज है लेकिन मुझे uid
के लिए डेटा नहीं मिल रहा है जिसमें orgid
पंक्ति नहीं है। कोई उपाय?क्वेरी जहां विदेशी कुंजी कॉलम हो सकता है NULL
select u.uid,u.fname,u.lname from u
inner join u_org on u.uid = u_org.uid
inner join login on u.uid = login.uid
where u_org.orgid=2 or u_org.orgid is NULL
and login.access != 4;
मूल रूप से OR
अगर u_org.orgid
पंक्ति मौजूद नहीं है।
मेरा अनुमान है ... आप कोष्ठक याद आ रहे हैं? इसके बजाए इसे आजमाएं: '(u_org.orgid = 2 या u_org.orgid पूर्ण है) और login.access! = 4' – Wolph
इसके अलावा, आप इसे इस तरह हल भी कर सकते हैं:' COALESCE (u_org.orgid, 2) = 2' – Wolph
@WoLpH - दोनों ने इसे हल नहीं किया। हो सकता है कि 'नल' गलत बात है? क्या यह शून्य है यदि पंक्ति डेटाबेस में मौजूद नहीं है? – user983223