2008-12-13 61 views
1

比方說,有這樣的事:如何快速創建使用Zend_Db的複雜選擇查詢?

SELECT energy_produced, energy_consumed, timestamp1 AS timestamp FROM (
SELECT max(energy_produced) AS energy_produced, mid(timestamp, 1, 10) AS timestamp1 FROM tbl_energy 
WHERE site_id = 1366 AND mid(timestamp, 1, 10) >= DATE_SUB(curdate(),INTERVAL 1 day) 
group by mid(timestamp1, 1, 10)) AS e1 
INNER JOIN (
SELECT max(energy_consumed) AS energy_consumed, mid(timestamp, 1, 10) AS timestamp2 FROM tbl_energy 
WHERE site_id = 1366 AND mid(timestamp, 1, 10) >= DATE_SUB(curdate(),INTERVAL 1 day) 
group by mid(timestamp2, 1, 10)) AS e2 
ON e1.timestamp1 = e2.timestamp2 

我可以只是把這些東西它在一個變量,並呼籲像$ DB->使用fetchall吸盤($選擇) - >指定者?

回答

3

是的,您可以將SQL語句作爲字符串傳遞給$db->fetchAll()方法。

您不需要對結果調用toArray(),因爲默認情況下結果已經作爲數組返回。

Zend_Db_Table類也有一個fetchAll()方法,但它不需要一個SQL字符串,並且它返回一個Zend_Db_Table_Rowset對象。

+0

工作就像一個魅力。非常感謝Bill! – Stuart 2008-12-13 02:15:40