1 回答

TA貢獻2012條經驗 獲得超12個贊
你有兩個選擇如何做到這一點。
1)可能更好的選擇是對第二個查詢也使用查詢構建器。
$query2 = (new \yii\db\Query())
->select(['A.id', 'A.make_eng', 'COUNT(B.make_id)')
->from(['A' => 'tbl_car_makes', 'B' => $query])
->where('A.id = B.make_id')
->groupBy(['A.id', 'A.make_eng']);
$data = $query2->all();
2) 另一種選擇是將第一個查詢轉換為 SQL 字符串。這種方法的問題是您將不得不處理參數。
$queryCommand = $query->createCommand();
$querySql = $queryCommand->getSql();
$command = $connection->createCommand(
"select A.id,A.make_eng,Count(B.make_id) from tbl_car_makes A,($querySql) as B where A.id=B.make_id group by A.id,A.make_eng",
$queryCommand->params
);
$data = $command->queryAll();
- 1 回答
- 0 關注
- 96 瀏覽
添加回答
舉報