Как быстро создать сложный запрос на выборку, используя Zend_Db? - PullRequest
1 голос
/ 13 декабря 2008

Допустим, есть что-то вроде:

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?

1 Ответ

3 голосов
/ 13 декабря 2008

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

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

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

...