2016-11-17 2 views
0

Ich habe eine Join-Abfrage, die ich mit Active Record neu erstellen muss. Das Problem ist, dass die Abfrage ist ziemlich schwer und ich weiß nicht, wie man eine Join in einer Join ..yii2 eine andere Abfrage in einem Join mit ActiveRecord

Die Abfrage.

$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(); 

Ist das überhaupt möglich mit Active?

Antwort

0

Dies ist einfacher (nur als Idee):

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

U kann die gleiche SQL-Abfrage in Yii2 auszuführen.

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

     $command = $connection->createCommand("Your complete sql query"); 
     $rows = $command->queryAll(); 
Verwandte Themen