Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按子查询删除同一表中的条令_Mysql_Symfony_Doctrine - Fatal编程技术网

Mysql 按子查询删除同一表中的条令

Mysql 按子查询删除同一表中的条令,mysql,symfony,doctrine,Mysql,Symfony,Doctrine,我正在尝试使用doctrine从mysql中删除记录 对应的MYSQL查询 DELETE FROM user_fields_data WHERE id NOT IN ( SELECT * FROM ( SELECT id FROM user_fields_data WHERE id IN ( SELECT block_id FROM user_fields_data WHERE template = 1 ) ) AS `ss

我正在尝试使用doctrine从mysql中删除记录

对应的MYSQL查询

DELETE FROM user_fields_data WHERE id NOT IN (
    SELECT * FROM (
        SELECT id FROM user_fields_data WHERE id IN (
            SELECT block_id FROM user_fields_data WHERE template = 1
        )
    ) AS `ss`
) AND template = 1
尝试使用条令删除:

$qb = $this->_em->createQueryBuilder();

$blockId = $qb->select('bl.blockId')
    ->from('UserFieldBundle:UserFieldsData','bl')
    ->where('bl.template = 1');

$ids = $qb->select('bl2.id')
    ->from('UserFieldBundle:UserFieldsData','bl2')
    ->where($qb->expr()->in('bl2.id',$blockId->getDQL()));

$result = $qb->delete('UserFieldBundle:UserFieldsData','USF')
    ->where($qb->expr()->notin('USF.id', $ids->getDQL()))
    ->andWhere('USF.template = :templateId')
    ->setParameter('templateId', 1)
    ->getQuery()
    ->getSQL();

dump($result);
条令查询以错误结束:

[语法错误]第0行,第65列:错误:应为文字,得到“删除”

数据库结构:


请同时附上错误。@DonCallisto错误消息已添加了对于如此复杂的内容,为什么不使用原始SQL查询?