【问题标题】:Doctrine2 DQL where id in arrayDoctrine2 DQL 数组中的 id
【发布时间】:2015-03-02 13:01:42
【问题描述】:

我有一个用户,我想检查它是否在 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

【问题讨论】:

  • 您尝试做的事情似乎没有意义。有用户表吗?那是如何连接的?等

标签: sql symfony doctrine-orm dql


【解决方案1】:

你只需要再加入一个

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

【讨论】:

  • 所以?您现在比较单个 ID,我需要多个与“IN”(数组)。
  • 否,如果qstn.users id 等于:userIDexmpl 中只有一个会被选中。
【解决方案2】:

看来您可以使用 DQL 关键字“MEMBER OF”例如:

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

我希望这对某人有帮助!

【讨论】:

    猜你喜欢
    • 2013-11-28
    • 2015-08-26
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2012-02-11
    相关资源
    最近更新 更多