Doctrine2 DQL其中id为数组

时间:2015-01-05 00:33:21

标签: sql symfony doctrine-orm dql

我有一个用户,我想检查它是否在qstn用户关系中。 我试图执行以下DQL:

SELECT exmpl, qstn
    FROM Foo\BarBundle\Entity\Examples exmpl
    LEFT JOIN exmpl.question qstn
    LEFT JOIN qstn.users u
    WHERE :user IN (qstn.users)

但是给了我一个错误:

[Syntax Error] line 0, col 391: Error: Expected Literal, got 'qstn'

这甚至可能吗?如果不是,是否有解决方法(教条方式),而不是讨厌? (没有通过用户的预先判断我可以解决这个问题。)

前言不是:https://stackoverflow.com/a/22230515/2535171

2 个答案:

答案 0 :(得分:0)

您只需要一次加入

SELECT exmpl, qstn
FROM Foo\BarBundle\Entity\Examples exmpl
LEFT JOIN exmpl.question qstn
LEFT JOIN qstn.users u
WHERE u.id = :userID

答案 1 :(得分:0)

看来你可以使用DQL关键字"会员"例如:

SELECT exmpl, qstn
   FROM Foo\BarBundle\Entity\Examples exmpl
   LEFT JOIN exmpl.question qstn
   LEFT JOIN qstn.users u
   WHERE :user MEMBER OF qstn.users

我希望这有助于某人!