gpt4 book ai didi

doctrine-orm - 教义 2 : Writing a proper Subselect

转载 作者:行者123 更新时间:2023-12-01 05:40:07 25 4
gpt4 key购买 nike

我正在尝试获取总记录 $qb将在我将 START & LIMIT 属性应用于查询之前返回 $qb .我的 $qb$totalQb自己运行得很好,但是当我尝试使用 $qb 时作为子选择,我收到一个错误:

$qb = $this->entityManager->createQueryBuilder()
->select('w, se')
->from('Dashboard\Entity\Section', 'se')
->innerJoin('se.word', 'w')
->innerJoin('se.location', 'l');

$qb->add('where', $qb->expr()->andx(
$qb->expr()->eq('l.ignored', $ignored),
$qb->expr()->eq('l.id', $params['l_id'])
), true);

这条线以上的一切运行良好
$totalQb = $this->entityManager->createQueryBuilder()
->select('COUNT(x.id)')
->from('Dashboard\Entity\Section', 'x');

上面的 $totalQb 本身运行良好。但是当我做
跟随,并尝试使用 $qb 作为 $totalQb 的子选择...
$dql = $qb->getDql();
$totalQb->add('where', $totalQb->expr()->exists( $dql ));
$totalSql = $totalQb->getQuery();

$sql = $totalSql->getSql();
$total = $totalSql->getSingleScalarResult();

这是引发的错误

它指的是 SubSelect 'exists' 语句。但是当我自己运行 $dql 时
它返回预期的结果
[Syntax Error] line 0, col 69: Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got ','

在我的场景中进行子选择的正确方法是什么?

更新
有人建议我添加 $totalSql->getDQL();这是该语句的输出:
SELECT COUNT(x.id) FROM Dashboard\Entity\Section x WHERE 
EXISTS(
SELECT w, se
FROM Dashboard\Entity\Section se
INNER JOIN se.word w
INNER JOIN se.location l
AND (l.ignored = 0)
AND (l.id = 2)
GROUP BY w.id, l.id
)

最佳答案

我能够通过将内部 -> select 更改为仅从一张表中提取来修复上述查询。

关于doctrine-orm - 教义 2 : Writing a proper Subselect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049315/

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