存在类似的问题,但我发现没有提到静默连接表问题。
我有一个带有连接的简单 SQL 查询,但由于这个连接表,无法将其转换为 DQL。有两个实体,Shop 和 Client,由 ManyToMany 关联链接。
Doctrine2 默默地做了一个连接表:shop_client
.
现在,如果我想获得不属于给定商店的所有客户,我很简单:
SELECT c.name FROM `client` AS c
JOIN `shop_client` AS sc
ON sc.client_id = c.id
AND sc.shop_id != :shop_id
这很简单,真的很容易,但我想不出 DQL 版本。
我尝试使用“EXISTS”、“NOT IN”、“SIZE”,但永远无法得到有效的 DQL 查询。
编辑:我的商店实体有一个clients
字段,但客户实体没有shops
字段。