У меня есть следующая таблица.Zend DB Присоединитесь к двум строкам из одной таблицы
---------------------------------------------
check_id | action_id | user_id | dt |
---------------------------------------------
1 | 1 | 6 | 2011-09-17 |
2 | 1 | 6 | 2011-09-18 |
3 | 3 | 6 | 2011-09-19 |
4 | 3 | 6 | 2011-09-20 |
---------------------------------------------
Я хотел бы запросить эту таблицу и получить следующий результат.
-----------------------------------------------
action_id | user_id | dt_start | dt_end |
-----------------------------------------------
1 | 6 | 2011-09-17 | 2011-09-18 |
3 | 6 | 2011-09-19 | 2011-09-20 |
-----------------------------------------------
Так что я использую следующий запрос.
$checks->select()
->from(array('c1' => 'checks'), array('dt as dt_start')
->joinLeft(array('c2' => 'checks'), 'c1.action_id = c2.action_id', array('dt as dt_end')
->where('c1.user_id = ?', $userId)
->group('c1.action_id')
Но это дает мне следующий результат.
-----------------------------------------------
action_id | user_id | dt_start | dt_end |
-----------------------------------------------
1 | 1 | 2011-09-17 | 2011-09-17 |
1 | 3 | 2011-09-19 | 2011-09-19 |
-----------------------------------------------
Может кто-нибудь сказать мне, что я делаю неправильно?
Мне не сразу понятно, какой SQL вы пытаетесь создать через Zend_Db_Select. Можете ли вы добавить SQL к вопросу? Кроме того, вы можете использовать метод Zend_Db_Select :: toString для печати SQL, который будет выполняться при запросе, что может помочь вам отладить. –