我有麻烦找到正确的SQL语句删除条目JOIN
我有3个表:
1.) Messages
2.) Mail_Inbox
3.) Mail_Outbox
新的消息存储在消息和其ID同时存储其它表。 用户可以从收件箱和发件箱文件夹中删除他们的邮件。
我想杜解析一个单一的sql语句删除所有条目从邮件中没有条目在收件箱和发件箱与相应的ID存在。
我仍然发现一个工作声明,它告诉我正确的ID,但我找不到删除它们的方法。
SELECT Messages.Message_ID
FROM `Messages`
LEFT JOIN Mail_Inbox On Messages.Message_ID = Mail_Inbox.Message_ID
LEFT JOIN Mail_Outbox On Messages.Message_ID = Mail_Outbox.Message_ID
WHERE ISNULL(Mail_Outbox.Mail_ID) AND ISNULL(Mail_Outbox.Mail_ID)
我尝试这样做:
DELETE FROM Messages
WHERE Message_ID = (SELECT Messages.Message_ID
FROM `Messages`
LEFT JOIN Mail_Inbox On Messages.Message_ID = Mail_Inbox.Message_ID
LEFT JOIN Mail_Outbox On Messages.Message_ID = Mail_Outbox.Message_ID
WHERE ISNULL(Mail_Outbox.Mail_ID) AND ISNULL(Mail_Outbox.Mail_ID))
但得到这个错误:您不能在指定目标表 '消息' 的更新FROM子句
:-(
您的选择将从收件箱中查找邮件。您需要将'WHERE'改为'ISNULL(Mail_Inbox.Mail_ID)AND ISNULL(Mail_Outbox.Mail_ID)' – TheConstructor