0

このmany2many関連付けを持つ3つのエンティティBuilding、Area、およびRouteがあります。

建物 n:m エリア
建物 n:m ルート

Area と Route にはプロパティが表示されます。建物を抽出する必要があり、それに関連付けられた可視エリアとルート (存在する場合)

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

私の推測では、あなたJOINの一部が条件なしでエンティティをプルするために発生します。だから、これを試してください:

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