Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

अंदर शामिल होने का व्यवहार अंदर मौजूद है sql

अंतर यह है कि जब आप उपयोग करते हैं exists - अंदर की क्वेरी आमतौर पर मुख्य क्वेरी पर निर्भर करती है (मतलब इससे कॉलम का उपयोग करता है और इसलिए इसे अलग से निष्पादित नहीं किया जा सकता है) और, इसलिए, मुख्य क्वेरी की प्रत्येक पंक्ति के लिए यह जांचता है कि सबक्वेरी द्वारा पुनर्प्राप्त कुछ डेटा मौजूद है या नहीं।

आपकी पहली क्वेरी की समस्या यह है कि ब्लॉक के अंदर मौजूद सबक्वायरी किसी भी तरह से मुख्य क्वेरी कॉलम पर निर्भर नहीं है, यह एक अलग क्वेरी है जो हमेशा 1 के साथ एक पंक्ति लौटाती है , इसलिए, मुख्य क्वेरी की किसी भी पंक्ति के लिए exists . का परिणाम हमेशा true रहेगा . तो, आपकी पहली क्वेरी

. के बराबर है
SELECT distinct(company_id)
FROM user
WHERE user.user_id = 123 
AND user.company_id IS NOT NULL

यह भी देखें fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल (ओरेकल):ऑर्डर बाय और लिमिट

  2. समूह के साथ एसक्यूएल फीफो क्वेरी

  3. मैं स्थानीय रूप से .NET के साथ काम करने के लिए OracleClient का पुराना संस्करण कैसे प्राप्त करूं?

  4. Oracle में प्राथमिक कुंजी कॉलम कैसे प्राप्त करें?

  5. एक कॉलम में अधिकतम मान वाली पंक्तियों का चयन करने के लिए sql क्वेरी कैसे लिखें?