我构建了一个函数
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/