2017-10-17 82 views
0

,導致該錯誤的查詢是以下:Yii2列

$query = $model::find() 
     ->leftJoin('reseller_config', 'reseller_rate.resellerref = reseller_config.resellerref') 
     ->select('reseller_rate.*, reseller_config.resellerref AS rate_increase'); 

生成的SQL如下:

SELECT COUNT(*) FROM `reseller_rate` LEFT JOIN `reseller_config` ON reseller_rate.resellerref = rc.resellerref WHERE `resellerref`=56 

我知道它不工作,因爲字段命名相同,它不知道要搶誰。

有誰知道我該如何解決這個問題?

+0

在選擇方法,則需要調用'reseller_rates',而在加入您的呼籲'reseller_rate'(無S) – gmc

+0

對不起,這是一個錯字將立即編輯 - 在我的代碼中是正確的 – Kyle

+0

'WHERE'resellerref' = 56'從哪裏來??它不在查詢中! –

回答

0
$query = $model::find() 
    ->leftJoin('reseller_config', 'reseller_rate.resellerref = reseller_config.resellerref') 
    ->select('reseller_rate.*', 'reseller_config.resellerref AS rate_increase'); 

您可以查詢bulider使用:

$model = (new Query()) 
      ->select(['reseller_rate.*', 'reseller_config.resellerref AS rate_increase') 
      ->from('reseller_rate') 
      ->leftJoin('reseller_config', 'reseller_rate.resellerref = reseller_config.resellerref') 
      ->all();