【问题标题】:DQL: Join table and return all results when at least one joined column fulfills a conditionDQL:连接表并在至少一个连接列满足条件时返回所有结果
【发布时间】:2016-02-26 12:18:20
【问题描述】:

我在 Doctrine 中有两个实体:Post 和 Comments 之间的 oneToMany。评论归用户所有。我想检索至少一个评论归某个用户所有的所有帖子和 cmets。使用 Doctrine 的查询构建器实现这一目标的正确方法是什么?

$em->createQueryBuilder('p')
  ->innerJoin('p.comments','c')
  ->having(AT LEAST ON c.user = :user)
  ->where(p.id = :idPost)

你们能帮帮我吗?

【问题讨论】:

    标签: sql symfony doctrine dql doctrine-query


    【解决方案1】:

    这里有一个解决方案:

    $query = $em->createQueryBuilder('p')
      ->leftJoin('p.comments','c')
      ->where('c.user = :user')
      ->andwhere('p.id = :idPost')
      ->setParameter('idPost', '1')
      ->setParameter('user', 'Toto')
    ;
    
    return $query->getQuery()->getResult();
    

    【讨论】:

    • 你好,这不是重点。如果我设置 user = toto,我将只有所有者为 toto 的消息,但我希望所有消息都连接到我的帖子,其中至少一个由 toto 拥有...
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    相关资源
    最近更新 更多