2016-11-17 16 views
0

アクティブレコードでリメイクする必要がある結合クエリがあります。問題はクエリがかなり難しく、結合で結合を行う方法がわかりません。 。yii2 ActiveRecordとの結合内で別のクエリを作成

クエリ:

$query = Product::find() 
      ->select([ 
       'p.*', 
       'pv.Units as SaleUnits', 
       'pv.Total as Pv', 
      ]) 
      ->leftJoin(' 
      (select 
      cl.campaign_list_status 
      p.id, 
      p.admin_title, 
      ao.article, 
      sum(ao.article) as Articles, 
      sum(ao.units) as Units, 
      TRUNCATE(sum(spo.total_price),2) as Total 
      from campaign_list cl 
       inner join campaign_article ca on ca.id_campaign_list=cl.id 
       group by ao.article) pv','pv.id=p.id') 
      ->all(); 

はActiveRecordのであっても可能ですか?

答えて

0

これは(唯一のアイデアなど)よりシンプルです:

$query = Product::find() 
     ->select([ 
      'p.*', 
      'sum(units) as SaleUnits', 
      'sum(article) as Pv', 
     ]) 
     ->leftJoin('campaign_article','???') 
     ->leftJoin('campaign_list','???') 
     ->groupBy('article') 
     ->all(); 
0

UはYii2で同じSQLクエリを実行することができます。

$connection = Yii::$app->getDb(); 

     $command = $connection->createCommand("Your complete sql query"); 
     $rows = $command->queryAll(); 
関連する問題