有没有办法使用DQL编写一个将表连接到自身的查询?
答案 0 :(得分:3)
请记住,在编写DQL时,您自己并不是在编写任何SQL,而是在ORM级别与对象模型进行对话。所以当你在DQL中使用'JOIN'时,你引用的是实体之间的关系,而不是实际的表。
所以我会在实体中创建a self-referencing relationship,然后使用DQL加入该关系:
$em->createQuery('SELECT a FROM MyEntity a JOIN a.foo f WHERE f.bar = 'somevalue')