加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 09:35:35 所属栏目:PHP 来源:互联网
导读:我在这个例子中有两个课程 – DeliveryMethod和Country.他们之间有着多对多的关系. 我想做的是选择没有任何国家映射到它们的所有DeliveryMethod. 我可以做相反的事情,那就是选择至少有一个国家的所有交货方式 – SELECT m FROM DeliveryMethod m JOIN m.count

我在这个例子中有两个课程 – DeliveryMethod和Country.他们之间有着多对多的关系.

我想做的是选择没有任何国家映射到它们的所有DeliveryMethod.

我可以做相反的事情,那就是选择至少有一个国家的所有交货方式 –

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'
那这个呢?假设$qb是您的查询构建器实例
$qb->select('m')
   ->from('DeliveryMethods','m')
   ->leftJoin('m.countries','c')
   ->having('COUNT(c.id) = 0')
   ->groupBy('m.id');

这将给你与国家相关联的DeliveryMethods和关联国家的数量为0

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读