【问题标题】:Fetch records with ManyToMany relation in one query在一个查询中获取具有多对多关系的记录
【发布时间】:2013-02-08 17:01:42
【问题描述】:

我有 2 个实体,PictureTag,具有 ManyToMany 关系。这意味着 3 个表:picturetagpictures_tags

我想选择一些图片并将它们的标签加入到同一个查询中。在 DQL 中如何实现?

【问题讨论】:

    标签: doctrine-orm many-to-many associations


    【解决方案1】:

    查询相当简单,都是关于fetch-joins

    $picture = $em->createQuery(
        "SELECT p, t FROM Entity\Picture p JOIN p.tags t WHERE p.id = :pictureId"
    )->getResult();
    

    【讨论】:

      【解决方案2】:
      $query = $em->createQuery("Select * from pictures p 
      join pictures_tags pt on p.pictureid=pt.pictureid 
      join tag on tag.id=pt.tagid");
      $users = $query->getResult();
      

      【讨论】:

      • 我收到了错误Class 'pictures_tags' is not defined。这是数据库中存在的 JoinTable,但不是一个实际的类..
      猜你喜欢
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      相关资源
      最近更新 更多