【发布时间】:2011-09-20 21:09:05
【问题描述】:
我有下表。
---------------------------------------------
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 |
-----------------------------------------------
谁能告诉我我做错了什么?
【问题讨论】:
-
我并不清楚您试图通过 Zend_Db_Select 创建什么 SQL。您可以将 SQL 添加到问题中吗?另外,您可以使用 Zend_Db_Select::toString 方法打印查询时将执行的 SQL,这可能有助于您调试。
标签: zend-framework join zend-db zend-db-table