【发布时间】:2021-05-26 13:10:28
【问题描述】:
我正在使用连接从多个表中删除,但此查询的问题是,如果一个表不包含匹配值/为空,则不会对具有匹配值和数据的表执行删除。 我该如何解决这个问题?
CREATE DEFINER=`root`@`localhost` PROCEDURE `gdpr_delete`(_email_ varchar(128))
BEGIN
DELETE AppCoverLetter, AppError, AppFormData, AppJobData, AppTrackingData, FlowLog, App,AppResume
FROM AppCoverLetter t1
INNER JOIN (
SELECT AppId
FROM ApplyData.AppFormData
where lower(Email) = lower(_email_)
) t3 ON t1.AppID = t3.AppId
INNER JOIN AppError ON AppError.AppID = t3.AppId
INNER JOIN AppCoverLetter ON AppCoverLetter.AppID = t3.AppId
INNER JOIN AppFormData ON AppFormData.AppID = t3.AppId
INNER JOIN AppJobData ON AppJobData.AppID = t3.AppId
INNER JOIN AppTrackingData ON AppTrackingData.AppID = t3.AppId
INNER JOIN FlowLog ON FlowLog.AppID = t3.AppId
INNER JOIN App ON App.AppID = t3.AppId
INNER JOIN AppResume ON AppResume.AppID = t3.AppId;
END
【问题讨论】:
-
不,这是一个不同的用例,