我有实体**目标,citytarget,城市,城市,地方
citytarget& cityplace是连接t& c和c& p
的数据透视表我需要给定城市名称和目标ID的地点
我尝试了以下DQL:
SELECT t,c,p FROM MulticatorBundle:Target t
join t.cities ct
join ct.cities c
join c.places cp
join cp.places p
where c.name like '%Stahmeln%'
但我收到了:
结果:找不到别名为“c”的实体结果的父对象。父别名是'ct'。
我不知道还有什么......
一个普通的SQL可能是:
select * from target
left join citytarget on citytarget.target_id = target.id
left join city on citytarget.city_id = city.id
left join cityplace on cityplace.city_id = city.id
left join place on cityplace.id = place.id
where target.id = 1
and city.name like \'%Stahmeln%\'
阿德里安
答案 0 :(得分:2)
你需要做
SELECT t,ct, c, cp ,p FROM MulticatorBundle:Target t
join t.cities ct
join ct.cities c
join c.places cp
join cp.places p
where c.name like '%Stahmeln%'
希望这能帮到你
答案 1 :(得分:2)
您的选择中始终需要您的父实体。在这种情况下:
SELECT ct, c, cp, t, p
需要