我收到错误“QueryException:[Semantical Error]第0行,第136页'idPat =:idP'附近:错误:类permissionRolePrl没有名为idPat的字段或关联” 当我尝试进行以下内连接时:
select pur.id_pur from
permission_user_role_pur pur
inner join
permission_role_action_pra pra
on pur.id_prl = pra.id_prl
where
pur.id_usr = 33
and pra.id_pat = 'TEST';
为此,我做了以下事情:
public function findByAction($idUsr, $IdPat)
{
$query = $this->createQueryBuilder('pur')
->innerJoin('pur.idPrl', 'pra')
->where('pur.idUsr = :idUsr')->setParameter('idUsr', $idUsr)
->andWhere('pra.idPat = :idPat')->setParameter('idPat', $IdPat);
return $query->getQuery()->getResult();
}
表格pra包含列:idPra(PK),idPat(str),idPrl(str)
表pur包含列:idPur(PK),idUsr(int),idPrl(str)
我该如何进行此查询?
答案 0 :(得分:0)
首先将它用于你的班级
use Doctrine\ORM\Query\ResultSetMapping;
之后在您的函数中执行此操作并根据您的代码进行更改
$sql = "SELECT p.title, p.media_type, p.description
from post p
inner join post_hot h on p.id = h.post_id";
$rsm = new ResultSetMapping;
$rsm->addScalarResult('title', 'title');
$rsm->addScalarResult('media_type', 'mediatype');
$rsm->addScalarResult('description', 'description');
$query = $em->createNativeQuery($sql, $rsm);
$Ipost = $query->getResult();