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

SQL क्वेरी कम से कम कुछ में से एक

10 से ऊपर रेटिंग वाले कम से कम एक पोस्ट वाले सभी उपयोगकर्ताओं को खोजने के लिए, इसका उपयोग करें:

SELECT u.*
  FROM USERS u
 WHERE EXISTS(SELECT NULL
                FROM POSTS p
               WHERE p.user_id = u.id
                 AND p.rating > 10)

EXISTS इसके भीतर SELECT स्टेटमेंट की परवाह नहीं करता है - आप NULL को 1/0 से बदल सकते हैं, जिसके परिणामस्वरूप शून्य से विभाजित करने के लिए गणित त्रुटि होनी चाहिए ... लेकिन ऐसा नहीं होगा, क्योंकि EXISTS केवल फ़िल्टरिंग से संबंधित है जहां खंड।

सहसंबंध (WHERE p.user_id =u.id) यही कारण है कि इसे एक सहसंबद्ध सबक्वेरी कहा जाता है, और रेटिंग तुलना के अलावा, USERS तालिका से केवल उन पंक्तियों को लौटाएगा जहां आईडी मान मेल खाते हैं।

स्थिति के आधार पर EXISTS भी तेज़ होता है, क्योंकि जैसे ही मानदंड पूरे होते हैं, यह सही हो जाता है - डुप्लीकेट कोई मायने नहीं रखते।



  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. PHP, mysql, jQuery और AJAX का उपयोग करके div स्क्रॉल पर गतिशील रूप से डेटा लोड करें

  3. उपयोगकर्ता '[ईमेल संरक्षित]' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:नहीं)

  4. MySQL इंडेक्स और ऑर्डर

  5. ताले की कुल संख्या लॉक टेबल के आकार से अधिक है