Mysql 删除带有两个表的SQL

Mysql 删除带有两个表的SQL,mysql,Mysql,此SELECT查询运行良好: SELECT u.user_id, u.user_lastvisit, n.user_id, n.multiple_counter, n.notification_id FROM users u, notifications n WHERE u.user_id = n.user_id AND u.user_lastvisit < ( UNIX_TIMESTAMP( ) -1814400 ) 我必须删除通知表中的每个条目。我试过这个: DELETE n

此SELECT查询运行良好:

SELECT u.user_id, u.user_lastvisit, n.user_id, n.multiple_counter, n.notification_id
FROM 
users u, notifications n
WHERE 
u.user_id = n.user_id
AND 
u.user_lastvisit < ( UNIX_TIMESTAMP( ) -1814400 ) 
我必须删除通知表中的每个条目。我试过这个:

DELETE notification_id FROM notifications
(SELECT u.user_id, u.user_lastvisit, n.user_id, n.multiple_counter, n.notification_id
FROM 
users u, notifications n
WHERE 
u.user_id = n.user_id
AND 
u.user_lastvisit < ( UNIX_TIMESTAMP( ) -1814400 ) )
谢谢你的帮助

删除语句的语法错误。请改用以下解决方案:

DELETE FROM notifications 
WHERE notification_id IN (
    SELECT x.notification_id
    FROM (
        SELECT notifications.notification_id
        FROM users, notifications
        WHERE users.user_id = notifications.user_id
    ) AS x
    WHERE x.user_lastvisit < (UNIX_TIMESTAMP() - 1814400)
);

首先,您不能在FROM子句中指定更新的目标表“通知”是否要更新或删除?你的问题是关于删除!删除但这是错误消息-second solutions gives:检查与您的MySQL服务器版本对应的手册,以了解在n.user_id=u.user_id上使用近'internal JOIN users u ON n.user_id=u.user_id,其中u.user_lastvisit再次尝试,给出:您不能为FROM子句中的更新指定目标表'notifications'
DELETE FROM notifications
    INNER JOIN users ON notifications.user_id = users.user_id 
WHERE users.user_lastvisit < (UNIX_TIMESTAMP() - 1814400)