mysql - 尝试在 MySQL 中执行删除时出现错误 1093

标签 mysql

请为这个查询提供一些帮助。当尝试在 MySQL 中执行删除时,它返回错误:“MySQL 错误 1093 - 无法在 FROM 子句中指定要更新的目标表”。否则 select 语句工作正常。这是脚本:

DELETE
  FROM redcap_data
WHERE record IN (SELECT DISTINCT
  redcap_data.record,
  redcap_data.field_name,
  redcap_data.value
FROM redcap_metadata
  INNER JOIN redcap_data
    ON redcap_metadata.project_id = redcap_data.project_id
  INNER JOIN redcap_events_metadata
    ON redcap_data.event_id = redcap_events_metadata.event_id
  INNER JOIN redcap_events_arms
    ON redcap_events_metadata.arm_id = redcap_events_arms.arm_id
WHERE (redcap_data.project_id = '50'
AND redcap_events_arms.arm_num = '6'
AND redcap_data.record IN ('record_ids go here')
))

最佳答案

尝试在用作 IN 子句而不是 IN 子句的子查询上使用内部联接

    DELETE r.*
      FROM redcap_data r
    INNER JOIN  (
      SELECT DISTINCT
      redcap_data.record,
      redcap_data.field_name,
      redcap_data.value
    FROM redcap_metadata
      INNER JOIN redcap_data
        ON redcap_metadata.project_id = redcap_data.project_id
      INNER JOIN redcap_events_metadata
        ON redcap_data.event_id = redcap_events_metadata.event_id
      INNER JOIN redcap_events_arms
        ON redcap_events_metadata.arm_id = redcap_events_arms.arm_id
    WHERE (redcap_data.project_id = '50'
    AND redcap_events_arms.arm_num = '6'
    AND redcap_data.record IN ('record_ids go here')
    )) t ON r.record = t.record

关于mysql - 尝试在 MySQL 中执行删除时出现错误 1093,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49453366/

相关文章:

mysql - Symfony 中的数据库连接错误

php/mysql 按第一个字符分组列表

php - 使用 Php 和 Salt&MD5 提交到 Mysql

mysql - 从生成的大型查询中修剪尾部 mysql group_concat

PHP:如何 "force"Session_Destroy()

javascript - 来自 PHP 的流程图

php - PHP 出现错误

mysql - SQL,选择不等于的地方

mysql - MySQL 如何选择向哪个从站发送查询?

mysql - 单数词和 MySQL 全文搜索的问题