Mysql 删除带有两个表的SQL
此SELECT查询运行良好: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 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)