在一个查询中获取具有ManyToMany关系的记录

时间:2013-02-08 17:01:42

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

我有2个实体,图片标记,具有ManyToMany关系。这意味着3个表:图片标记 pictures_tags

我想选择一些图片并在同一查询中加入他们的标签。如何在DQL中完成?

2 个答案:

答案 0 :(得分:0)

$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();

答案 1 :(得分:0)

查询非常简单,全部都是fetch-joins

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