-1

可能重复:
Symfony2 和 Doctrine:创建自定义 SQL 查询

我在我的 symfony2 项目中尝试过:

$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery(
        'SELECT v.voiture,o.offre,m.marque
         FROM FrontOfficeBundle:Voiture v
         INNER JOIN FrontOfficeBundle:OffreSpecial o on o.voiture_id = v.id
         INNER JOIN FrontOfficeBundle:Marque m on m.id = v.marque_id'
    );
$result = $query->getResult();

并得到那个错误:

[Syntax Error] line 0, col 122: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got 'on'

甚至 SQL 查询都是正确的!请帮助

4

1 回答 1

1

您不需要ON为您的INNER JOIN. Doctrine Query Language 已经知道您的关联映射,因为您FrontOfficeBundle:Voiture在查询中指定了类。

$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery(
        'SELECT v.voiture,o.offre,m.marque
         FROM FrontOfficeBundle:Voiture v
         INNER JOIN v.offreSpecial o 
         INNER JOIN v.marque m'
    );
$result = $query->getResult();
于 2013-02-04T01:16:08.460 回答