mysql - Zend 框架 - 连接查询

标签 mysql zend-framework join

我构建了一个函数

public function getBannedByLogin($commentId)
    {
    $sql = $this->getDbAdapter()->select()
            ->from(array('comments' => 'comments'), array())
            ->join(array('users' => 'qengine_users'),
            'comments.bannedBy = users.userId',
            array())
            ->where('commentId = ?', $commentId)
        ;
        $row = $this->fetchRow($sql);
        return $row['login'];

    }

而且有问题,这不起作用! :D 我来给你解释一下。评论中的“bannedBy”列返回发出禁令的用户 ID。我需要将其与表用户连接以加载登录字段。我哪里有错误?

最佳答案

我假设代码在不引发异常的意义上起作用。如果是这样,您的代码就可以了,您只需明确告诉 Zend_Db 不要选择任何列。

public function getBannedByLogin($commentId)
{
$sql = $this->getDbAdapter()->select()
        ->from(array('comments' => 'comments'))
        ->join(array('users' => 'qengine_users'),
        'comments.bannedBy = users.userId')
        ->where('commentId = ?', $commentId)
    ;
    $row = $this->fetchRow($sql);
    return $row['login'];

}

from()join() 函数的最后一个参数是您要选择的列的数组。如果传入空数组,则不会选择任何列。无参数 = 选择所有内容。当然,您也可以仅指定您需要的列。

关于mysql - Zend 框架 - 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245317/

相关文章:

zend-framework - 禅德数据库 : joinLeft problem

php - 让 Zend-Framework 运行得更快

linux - 缺少/Zend/Db/Adapter/Pdo/Mysql.php

mysql - Mysql时间范围选择

mysql - 运行WEBrick : Can't Connect to MySQL server时出错

php - 从 Zend 中的 2 个表获取结果

php - 即使 JSON 响应正常,仍然收到 JSONException : Value <! DOCTYPE 类型错误

连接包含 Java HashMap 对象的 Kafka 流

mysql - MATCH AGAINST 不适用于两个 LEFT JOIN : #1210 - Incorrect arguments to MATCH

sql - PostgreSQL array_agg 非常慢