请指导我在zend框架中查询该错误的方法

时间:2011-05-10 12:03:03

标签: zend-framework

我有两个表用户和资产,外键是 user_id 。我想要用户的详细信息和每个用户资产的数量所以,我写了如下查询,但没有得到记录。请帮帮我。

$users = $this->select()
             ->from(array('u' => 'users'),
                    array('firstname'))
             ->joinLeft(array('a' => 'assets'),
                    'u.id = a.user_id',
                    array('asset_per_user' => 'COUNT(a.id)'))
             ->group('u.id');        

3 个答案:

答案 0 :(得分:6)

  

'选择查询无法与其他表'

连接

在您的示例中,这意味着$this肯定是 Zend_Db_Table 。默认情况下,从Zend_Db_Table中选择不能执行连接(因为它们默认用于Active Record操作)。

添加:

$users->setIntegrityCheck(false);

这个恐怖消息将会消失。我还没有检查过SQL查询,这可能是正确的。

答案 1 :(得分:0)

http://framework.zend.com/manual/1.11/en/zend.db.table.html

参见示例#28“删除Zend_Db_Table_Select上的完整性检查以允许JOINed行”

答案 2 :(得分:-1)

我遇到了同样的问题。这是因为您正在连接与特定表无关的数据库表。因此,我们需要关闭完整性测试。您可以查看详细解决方案here