gpt4 book ai didi

php - Doctrine 2 DQL - 选择多对多字段为空的行?

转载 作者:IT王子 更新时间:2023-10-28 23:54:25 25 4
gpt4 key购买 nike

在这个例子中我有两个类 - DeliveryMethod 和 Country。它们之间是多对多的关系。

我想要做的是选择没有任何国家映射到它们的所有 DeliveryMethods。

我可以做相反的事情,即选择至少有一个国家的所有交付方式 -

SELECT m FROM DeliveryMethod m JOIN m.countries

但我不知道如何选择国家字段为空的位置。在普通 SQL 中,我会执行以下操作(deliverymethod_country 是链接表):

SELECT m.* FROM deliverymethods m
LEFT JOIN deliverymethod_country dc ON dc.deliverymethod_id = m.id
WHERE dc.deliverymethod_id IS NULL

但是任何与此等效的 DQL 都不起作用,例如:

SELECT m FROM DeliveryMethod m LEFT JOIN m.countries WHERE m.countries IS NULL

这给了我这个错误:

[Syntax Error] line 0, col 75: Error: Expected end of string, got 'm'

最佳答案

使用Doctrine的为空

它专门用于检查空关联:

$qb->select('m')->from('DeliveryMethods', 'm')->where('m.countries is empty')

见:Doctrine 2 ORM Documentation: Doctrine Query Language (搜索“为空”)

关于php - Doctrine 2 DQL - 选择多对多字段为空的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com