2016-06-13 55 views
0

如何将以下sql查询更改为yii2如何将sql查询更改为yii2

SELECT 
    a.id, a.name_of_flight, a.time_of_flight, (no_of_passenger-b.cnt) as avail 
FROM 
    flight_schedule a 
LEFT JOIN 
    (SELECT flight_time, COUNT(id) AS cnt FROM book_eticket WHERE flight_date='2016-06-01' GROUP BY flight_time) b 
ON a.id = b.flight_time 
+0

更好地解释你的问题最终会显示你的代码的其余部分......这个问题不明确 – scaisEdge

+0

使用Joinwith概念 –

回答

0

我不确定,但你可以使用这个逻辑。 欲了解更多详情请访问official页面。

flight_schedule::find() 
    ->select(['id', 'name_of_flight', ' time_of_flight']) 
    ->distinct() 
    ->joinWith('bookEticket') 
    ->all(); 

并添加有关flight_schedule型号:

public function getBookEticket() 
{ 
    $this->hasOne(book_eticket::className(), ['id' => 'flight_time']); 
} 
+0

的http://计算器。 COM /问题/ 24389765 /如何到计数和分组逐中,yii2 –