Mysql 内部联接原则

Mysql 内部联接原则,mysql,zend-framework,doctrine,inner-join,Mysql,Zend Framework,Doctrine,Inner Join,这是ZF应用程序中的条令代码: $rowset = Doctrine_Query::create() ->select("cu.clientuser, cu.usertitle, u.firstname") ->from('Model_Db_Tblclientuser cu') ->innerJoin('cu.Tblusers u') ->whereIn('cu.clientid', (int)$clientid) ->exec

这是ZF应用程序中的条令代码:

$rowset = Doctrine_Query::create()
    ->select("cu.clientuser, cu.usertitle, u.firstname")
    ->from('Model_Db_Tblclientuser cu')
    ->innerJoin('cu.Tblusers u')
    ->whereIn('cu.clientid', (int)$clientid)
   ->execute();


foreach ($rowset as $row) {             
    $list[] = array(
        'title' => $row->usertitle,
        'firstname' => $row->firstname
    );
}
生成的查询如下所示:

SELECT 
    t.clientuser AS t__clientuser, 
    t.usertitle AS t__usertitle, 
    t2.userid AS t2__userid, 
    t2.firstname AS t2__firstname 
FROM 
    tblclientuser t INNER JOIN tblusers t2 ON t.userid = t2.userid 
WHERE 
   (t.clientid IN (1))
复制粘贴到phpmyadmin中,它提供了一个完美的结果。 但是当我运行ZF应用程序时,它出错了

对于field clientuser,一切正常。 但是对于字段firstname,它出错了

Unknown record property / related component "firstname"
on "Model_Db_Tblclientuser"
我做错了什么

注意到一件非常奇怪的事情:如果我这样做了

foreach ($rowset as $row) {             
    var_dump($row);
}

它还输出其他所有表的内容,这些表根本不重要

我想我不久前遇到了同样的问题,并通过在连接上选择ID解决了它

尝试添加

->select("cu.clientuser, cu.usertitle, u.id, u.firstname")

或者不管连接键是什么,看看这是否解决了问题。

您是否尝试过执行大规模选择而不是自定义选择

->select("cu.*, u.*")
或者删除选择按钮。我知道这不是一个解决方案,从symfony的一个doctrine用户的角度来看,代码中的每一件事情似乎都很好。您正在使用1.2.4吗


ps:保存您的浏览器,不要转储doctrine 1.x对象:

我意识到这是一个老问题,但如果有人遇到这个问题,我相信这与我经历的类似问题有关

请在此处查看解决方案: