DQL选择关联

时间:2014-05-23 11:15:31

标签: php database doctrine-orm zend-framework2 dql

我有2个学说实体,

实体A有一个字段name

实体B有一个字段city

实体A与名为B的实体bees有一对多的关联

现在,我尝试选择名称为“test”的所有A实体,或者与B实体建立关联,其中包含像'test'这样的城市

我有DQL:

SELECT a FROM A a INNER JOIN a.bees b WHERE a.name LIKE ?1 OR b.city LIKE ?1

A具有关联的B但如果没有关联的B时,即使A的名称匹配,结果也为空,这也有效。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您应该使用左连接

SELECT a FROM A a LEFT JOIN a.bees b WHERE a.name LIKE ?1 OR b.city LIKE ?1

这是一张备忘单:http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg