Php 如何删除单个DQL中的所有连接实体
我有这样一个dql声明:Php 如何删除单个DQL中的所有连接实体,php,doctrine-orm,dql,Php,Doctrine Orm,Dql,我有这样一个dql声明: 删除i、p、d、d2、s 摘自:图片一 加入i.p 加入i.d 加入p.doc d2 左连接p.s 其中d.taglike:tag 如果我将DELETE替换为SELECT,查询将按预期工作。但是,当我使用DELETE时,它会给我一个错误 [语义错误]第0行,第7列靠近“i,p,d,d2”:错误:未定义类“i” DQL中的删除查询不支持联接,因为某些受支持的RDBMSE不支持联接 不幸的是,您必须首先选择要删除的元素的ID,然后执行delete FROM foo WHE
删除i、p、d、d2、s
摘自:图片一
加入i.p
加入i.d
加入p.doc d2
左连接p.s
其中d.taglike:tag
如果我将DELETE
替换为SELECT
,查询将按预期工作。但是,当我使用DELETE
时,它会给我一个错误
[语义错误]第0行,第7列靠近“i,p,d,d2”:错误:未定义类“i”
DQL中的删除查询不支持联接,因为某些受支持的RDBMSE不支持联接 不幸的是,您必须首先选择要删除的元素的ID,然后执行
delete FROM foo WHERE bar IN(?1)
,并将ID作为参数传递给数组
从多个表中删除时,请记住使用显式事务
另一种选择是本机查询,因为底层RDBMS支持删除查询中的联接