我有 2 个学说实体,
实体 A
有一个字段 name
实体 B
有一个字段 city
实体 A
与名为 bees
的实体 B
具有一对多关联
现在我尝试选择所有 A
实体,这些实体的名称如“test”,或者与 B
实体有关联,而 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
匹配。
我该如何解决这个问题?
最佳答案
你应该使用左连接
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
关于php - DQL 选择关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23827753/