Как быстро создать сложный запрос выбора с помощью 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 ($ select) -> toArray?

13.12.2008 01:55:31
1 ОТВЕТ
РЕШЕНИЕ

Да, вы можете передать инструкцию SQL как строку в $db->fetchAll()метод.

Вам не нужно вызывать toArray()результат, потому что результат уже возвращается как массив по умолчанию.

У Zend_Db_Tableкласса также есть fetchAll()метод, но он не принимает строку SQL и возвращает Zend_Db_Table_Rowsetобъект.

3
13.12.2008 02:04:41