2016-11-17 60 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();