2016-05-18 38 views
0

我有一個SQL查詢,我想寫與Magento的收集方法,但我不知道如何。 我知道我必須使用getSelect()和joinLeft()方法,但不知道如何在左連接中放置選擇。Magento - 編程SQL查詢

查詢是:

SELECT 
    p.photo_id, 
    p.photo_name, 
    s.step_id, 
    s.step_name 
FROM Photo p 
LEFT JOIN (
    SELECT 
     photo_id, MAX(step_id) AS max_step_id 
    FROM photoStep 
    GROUP BY photo_id 
) ps 
    ON ps.photo_id = p.photo_id 
LEFT JOIN Steps s 
    ON s.step_id = ps.max_step_id 

回答

0

我認爲,在這裏你最好的選擇是儘量避免使用子查詢。所以我會先重新編寫SQL查詢,然後使用函數groupByField & addExpressionFieldToSelect。

->groupByField('photo_id') 
->addExpressionFieldToSelect("max_step_id", 'MAX({{step_id}})', 'step_id')