请为这个查询提供一些帮助。当尝试在 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/