Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Yii2 :Mengubah kueri mentah menjadi ActiveRecord

Jika kueri RawSql yang Anda tulis memberikan hasil yang diinginkan jika dijalankan di atas tabel menggunakan phpmyadmin atau utilitas lain apa pun, Anda dapat mengubahnya menjadi yang berikut.

$subQuery = Adanalytics::find()
        ->select([new Expression('[[id]], [[ad_id]], MAX([[impression]]) as impression, max([[view]]) as view, max([[clicks]]) as clicks,[[visitor_ip]],[[publisher_id]]')])
        ->where(['publisher_id' =>  Yii::$app->user->identity->id ])->
        ->groupBy('[[id]], [[visitor_ip]]');

$query = Adanalytics::find()
        ->select([new \yii\db\Expression('t.[[date_event]], t.[[id]], t.[[ad_id]], sum(t.[[impression]]) as total_impression, sum(t.[[view]]) 
         as total_views, sum(t.[[clicks]]) as total_clicks, t.[[publisher_id]], i.[[budget]],i.[[name_of_campaign]]')])
        ->from(['t' => $subQuery])
        ->innerJoin('{{%inventory}} i', 'i.id=t.ad_id')
        ->groupBy('t.ad_id, t.date_event');
$query->all()

Pastikan bahwa kunci asing yang Anda gunakan untuk bergabung dengan tabel lain harus ditentukan dalam pilih jika tidak, itu mungkin memberi Anda kesalahan seperti kolom tidak ditemukan / atau kolom tidak dikenal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terus streaming audio acak dari database

  2. hasil group_concat tidak berfungsi dalam kondisi IN

  3. Permintaan MySql pada kombinasi AND dan OR

  4. SQL Where Clause dengan banyak nilai

  5. Saya memiliki masalah saat menghubungkan ke db saya di godaddy dengan PDO