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

Laravel . में whereHas का उपयोग करते समय सबक्वेरी से SUM का चयन करें

आप withCount() का इस्तेमाल कर सकते हैं संबंधित मॉडल से योग प्राप्त करने के लिए

$result = Customer::select([
            'customers.id',
            'customers.last_name'
        ])->withCount([
            'customerInvoices as invoice_sum' => function($query) {
                $query->select(DB::raw('SUM(total_price)'));
            }
        ])->whereHas('customerInvoices', function(Builder $q) {
            $q->where('customer_invoices.status', 1);
        })->get();

योग प्राप्त करने का दूसरा तरीका, आप hasOne() . को परिभाषित कर सकते हैं आपके ग्राहक मॉडल में संबंध जैसे

public function invoice_sum()
{
    return $this->hasOne(CustomerInvoice::class)
        ->select('customer_id',
            DB::raw('sum(total_price)')
        )->groupBy('customer_id');
}

और क्वेरी बिल्डर में

$result = Customer::select([
            'customers.id',
            'customers.last_name',
        ])->with('invoice_sum')
          ->whereHas('customerInvoices', function(Builder $q) {
            $q->where('customer_invoices.status', 1);
        })->get();      

के अनुसार वाक्पटु :withCount() get() पर $columns को ओवरराइड करता है पहले मुद्दा डालें select() mehtod और फिर with() . का उपयोग करें समारोह




  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 में उपलब्ध कैरेक्टर सेट की सूची कैसे लौटाएं?

  2. टेबल ऑप्टिमाइज़ का समर्थन नहीं करता है, इसके बजाय रीक्रिएट + एनालिसिस करने का क्या मतलब है?

  3. स्प्रिंग बूट एप्लिकेशन में ssh टनल पर रिमोट mysql से कैसे कनेक्ट करें?

  4. PHP/PDO MYSQL में वर्तमान दिनांक और एक माह सम्मिलित करें

  5. MySQL स्ट्रिंग का अंतिम सूचकांक