0

我有 3 个实体 Building、Area 和 Route 与这个 many2many 关联:

建筑物 n:m 区域
建筑物 n:m 路线

区域和路线具有可见的属性。我必须提取建筑物并将其关联可见区域和路线(如果存在)

SELECT 
    b, bir, bia
FROM 
    ArchMapsBundle:Building b 
    LEFT JOIN 
        b.buildingsInRoute bir
    LEFT JOIN 
        bir.itinerario r WITH r.visible = 1
    LEFT JOIN 
        b.buildingsInArea bia
    LEFT JOIN 
        bia.area a WITH a.visible = 1
WHERE 
    b.id = :building_id

但我总是得到不可见的区域和路线。

4

1 回答 1

0

我的猜测是,发生这种情况是因为您的一些JOINs 没有条件地拉动实体。所以,试试这个:

WHERE b.id = :building_id 
  AND r.visible = 1 
  AND a.visible = 1
于 2013-03-06T17:45:37.153 回答