学说 DQL - 字符串的预期结尾,得到"内部"



我试图执行一些简单的查询,但我总是得到这个异常

[语法错误]line 0, col 157: Error: Expected end of string, got"内部"

这是我的查询:

public function hasRecord($user, $event)
{
    $q = $this->getEntityManager()->createQuery("
                select count(h.id) from TskFEBundleEntityHistory h
                inner join h.user u where u.id = :user
                inner join h.event v and v.id = :event
            ");
    $q->setParameters([
        "user" => $user,
        "event" => $event
    ]);
    return $q->getSingleScalarResult();
}

如何执行两个内连接?我的查询有问题吗?

您应该在where子句之前执行连接:

public function hasRecord($user, $event)
{
    $q = $this->getEntityManager()->createQuery("
                select count(h.id) from TskFEBundleEntityHistory h
                inner join h.user u
                inner join h.event v
                where u.id = :user
                and v.id = :event
            ");
    $q->setParameters([
        "user" => $user,
        "event" => $event
    ]);
    return $q->getSingleScalarResult();
}

最新更新