2016-02-12 90 views
2

我有实体**目标,citytarget,城市,城市广场,放置连接吨& C和C & p学说DQL与多个连接表

我需要

citytarget &城市广场是枢轴表对于给定的城市名称和目标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%\' 

阿德里安

回答

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%' 

希望这有助于你

+0

喜亚必迭。 tx为你回答,我现在收到'undefined index city'的通知;/ –

+0

修正了它。这是一个复数和单数实体变量的问题 –

1

您总是需要您选择的父母实体。在这种情况下:

SELECT ct, c, cp, t, p 

需要