【问题标题】:Doctrine JOIN syntax教义 JOIN 语法
【发布时间】:2015-01-27 12:00:30
【问题描述】:

我在为教义查询构建器转换一些旧版 SQL 时遇到问题。我认为问题出在内部连接中,但我无法完全计算出构建器所期望的参数。

这是我目前所拥有的:

$qb = $em->createQueryBuilder();
$qb->select('ob.size', 'ob.colour', 'ob.productId', 'p.title')
            ->from('m:Option', 'ob')
            ->innerJoin('m:Product', 'p', 'ON', 'ob.ProductId');

这是原始查询:

 query="select size,colour,product_id,title from
                products,options_new where
                picture = '' and
                products.id = options_new.product_id and
                product_id like 'UTRW%'
                group by product_id";

我通常会明确地编写连接,所以我不确定我是否理解 from 子句在这里的工作原理。

目前新查询正在生成此错误:

预期的 Doctrine\ORM\Query\Lexer::T_WITH,得到 'ON'

干杯!

【问题讨论】:

  • ->innerJoin('m:Product', 'p', 'WITH', 'ob.ProductId=p.id');
  • @websky 效果很好:) 我会投票,但我没有积分/声誉

标签: doctrine-orm doctrine inner-join


【解决方案1】:

尝试下面的查询(将您的实体放在这里,会更有帮助),有关获取相关实体的更多详细信息,请查看文档:http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#joins

$qb = $em->createQueryBuilder('m');
$qb->select('ob.size', 'ob.colour', 'ob.productId', 'p.title')
    ->innerJoin('m.product', 'ob');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多