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

Yii2 - कई शर्तों पर बाएं शामिल हों

मेरा मानना ​​है कि यह एक बेहतर समाधान है। कच्चे प्रश्नों जैसे leftJoin . का उपयोग करने के बजाय आपको अपने joinWith . का पूरक होना चाहिए andOnCondition . के साथ संबंध (जो आपके जॉइन स्टेटमेंट में आवश्यक शर्तों को जोड़ता है)।

$products = Product::find()
    ->joinWith(['metaData' => function (ActiveQuery $query) {
        return $query
            ->andWhere(['=', 'meta_data.published_state', 1]);
    }])
    ->joinWith(['availability' => function (ActiveQuery $query) {
        return $query
            ->andOnCondition(['>=', 'availability.start', strtotime('+7 days')])
            ->andWhere(['IS', 'availability.ID', NULL]);
    }])
    ->all();

इसके अलावा जब आप where write लिखते हैं तो यह साफ दिखता है संबंधों के अंदर खंड। यह वैसे ही काम करता है जैसे इसे बाहर लिखना (यदि मैं गलत नहीं हूं), लेकिन अपनी क्वेरी को दोबारा करते समय, आप बाहर की संबंध स्थितियों को भूले बिना आसानी से पूरे संबंध को हटा सकते हैं।



  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 पर Django में कॉलम के लिए डेटा बहुत लंबा है

  2. MySQL तालिका से सभी अनुक्रमणिका छोड़ रहा है

  3. ActiveRecord::ConnectionTimeoutError:5.000 सेकंड के भीतर डेटाबेस कनेक्शन प्राप्त नहीं कर सका (5.000 सेकंड प्रतीक्षा की गई)

  4. त्रुटि 1046 कोई डेटाबेस चयनित नहीं, कैसे हल करें?

  5. लोड हो रहा है क्लास com.mysql.jdbc.Driver ... पदावनत संदेश है