我建立一个功能
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 Framework-连接查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23245317/