我有两个表用户和资产,外键是 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');
答案 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。