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

अन्य रिकॉर्ड के विशिष्ट सेट से जुड़े रिकॉर्ड का मिलान कैसे करें?

इसे प्राप्त करने के कुछ तरीके हैं, पहला यह होगा कि परिणामों को समूहीकृत किया जाए और HAVING . का उपयोग किया जाए विशिष्ट टैगों की संख्या की तुलना करने के लिए

$query = $this->Users
    ->find()
    ->matching('Tags', function ($query) {
        return $query->where(['Tags.name IN' => ['Tag1', 'Tag2']]);
    })
    ->group('Users.id')
    ->having([
        $this->Users->query()->newExpr('COUNT(DISTINCT Tags.name) = 2')
    ]);

यह केवल उन उपयोगकर्ताओं का चयन करेगा जिनके पास दो अलग-अलग टैग हैं, जो केवल Tag1 . हो सकते हैं और Tag2 चूंकि ये केवल वही हैं जिन्हें शामिल किया जा रहा है। मामले में name कॉलम अद्वितीय है, आप इसके बजाय प्राथमिक कुंजी पर भरोसा कर सकते हैं।

IN बीटीडब्ल्यू। अनिवार्य रूप से आपके OR . जैसा ही है शर्तें (डेटाबेस सिस्टम IN expand का विस्तार करेगा करने के लिए OR शर्तों के अनुसार)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL अद्यतन:टी-एसक्यूएल डेवलपर्स के लिए शीर्ष 5 युक्तियाँ

  2. SQL तालिका में शर्तों के साथ कॉलम नाम के रूप में कॉलम मान का चयन कैसे करें

  3. '0000-00-00 00:00:00' को java.sql के रूप में प्रदर्शित नहीं किया जा सकता है। टाइमस्टैम्प त्रुटि

  4. php सिंगलटन डेटाबेस कनेक्शन, क्या यह कोड खराब अभ्यास है?

  5. mysql कमांड लाइन में लंबवत रिकॉर्ड कैसे दिखाएं?