【问题标题】:Symfony Doctrine, select from subquery with joinSymfony Doctrine,从带有连接的子查询中选择
【发布时间】:2014-07-07 22:37:39
【问题描述】:

无法为此找到可靠的解决方案,但我有一个 mySQL 查询,我想将其转换为 Doctrine。它是从带有连接的子查询中选择的,我可能在某处读到过在 Doctrine 的子查询中不允许连接的地方。

这里是 SQL:

SELECT part, SUM(qty) as qty FROM (SELECT part, SUM(qty) as qty FROM sub LEFT JOIN main ON main.id = main_id WHERE hold != 1 GROUP BY name, part) AS tbl GROUP BY part

这是我尝试过的,但都是错误的。

 $em = $this->getDoctrine()->getManager();

    $q = $em->createQuery('v');
    $q2 = $em->createSubQuery()
        ->select('m.part, sum(s.qty) qty')
        ->from('Sub s')
        ->leftJoin('s.main m')
        ->where('s.hold != 1')
        ->groupBy('m.part');

    $q->select('m.part, sum(qty)', $q2->getDQL());

我遇到的第一个错误是:

FatalErrorException: Error: Call to undefined method Doctrine\ORM\EntityManager::createSubQuery() in ....Controller.php line 238

我很确定我做错的不仅仅是这件事,而是第一件事。那么getManager() 显然没有createSubQuery() 功能?这样做的正确方法是什么?

【问题讨论】:

    标签: php sql symfony doctrine-orm


    【解决方案1】:

    没有像createSubQuery() 这样的方法。看看那个答案:https://stackoverflow.com/a/10763358

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 2016-05-04
      • 2013-04-30
      • 2023-03-20
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多