2016-06-13 114 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 –