php - DQL 选择关联

标签 php database doctrine-orm zend-framework2 dql

我有 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/

相关文章:

php - 针对现有 REST 登录系统使用 amp-access 需要什么?

PHP MariaDB 插入 NULL 值不起作用

php - 如何从三个表中求和,总计的总和

php - 交响乐 : Get key value from object doctrine

php - 检测文章中的趋势 "reactions"(一个或多个)(如 Buzzfeed 等)

php - 如何使其仅在数据库中保存1次

MySQL限制用户只能注册一个数据库

php - 连接php到mysql数据库

php - symfony3 : create form for entity that has a column with many to one relationship

php - Symfony 关联实体集合的高级过滤