【问题标题】:Doctrine query syntax error in multiple join多连接中的 Doctrine 查询语法错误
【发布时间】:2013-06-28 08:57:44
【问题描述】:

我正在尝试在我的 Symfony2 项目中查询模型,但我遇到了一个我无法弄清楚的小问题。看看这个:

$q2 = 
  'SELECT 
    p.code, 
    p.desc, 
    SUM(d.quantity) as quantity, 
    SUM(d.quantity*d.prize) as euros
  FROM 
    Product p 
  JOIN 
    TransactionDetail d
  JOIN 
    d.transaction t
  WHERE 
    d.product IN :array 
  AND 
    t.shop = :shop
  GROUP BY 
    p.code';
$query2 = $this->em->createQuery($q2)
  ->setParameter('shop', $shop)->setParameter('array', $array);
$result = $query2->getResult();

我得到这个错误:

[Syntax Error] line 0, col 248: Error: Expected =, <, <=, <>, >, >=, !=, got 't'

我不明白。有人可以帮我吗?

谢谢。

【问题讨论】:

    标签: symfony syntax doctrine dql


    【解决方案1】:

    我认为您应该将 TransactionDetail 与另一个实体链接:

    目前:

    JOIN 
        TransactionDetail d
    

    应该是:

    JOIN 
        p.transactionDetail d
    

    【讨论】:

    • 但事实并非如此。 “产品 p”没有 transactionDetail 属性。 TransactionDetail 有一个产品属性。
    • 那么,你不能这样做。你必须让产品知道细节才能加入它。 (对产品使用反比关系(ManyToOne/OneToMany)。
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多