gpt4 book ai didi

doctrine - 从 DQL 中的子查询中选择

转载 作者:行者123 更新时间:2023-12-04 12:11:43 25 4
gpt4 key购买 nike

我想从 DQL 中的子查询结果中执行 SELECT。相当于在 SQL 中执行以下操作:

SELECT * FROM ( SELECT foo1,foo2 FROM bar ) where foo1='something';

我遇到的问题是它提示说
Error: Class '(' is not defined

产生该错误的实际 DQL 是:
SELECT u FROM (
SELECT u, COUNT(u) as total
FROM Utterance u LEFT JOIN u.recordings r
WHERE r.speaker IS NULL OR r.speaker <> 5
GROUP BY u.id
) matched WHERE total < 5

所以重申一下,我如何从子查询中执行选择?

最佳答案

使用 DQL 我很确定这是不可能的,但如果你真的需要它,你可能需要检查:

Doctrine Native SQL . ( examples ,来自同一页面的永久链接)

它要复杂得多,但它也让您可以自由地发送 native 查询并执行它(对我来说棘手的部分是对象水化)。

另一方面,如果最后一个代码段类似于您要实现的任何内容,则有一种更简单的方法不需要子查询:

SELECT u
FROM Utterance u LEFT JOIN u.recordings r
WHERE r.speaker IS NULL OR r.speaker <> 5
GROUP BY u.id HAVING COUNT(u) < 5

希望这可以帮助...

关于doctrine - 从 DQL 中的子查询中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com