2016-06-05 2 views
2

현재 MySQL 데이터베이스에서 프로 시저를 사용하는 방법을 배우려하고 있습니다. 테스트 데이터베이스에는 두 개의 테이블이 있는데 하나는 사용자라고하고 다른 하나는 메시지라고합니다.다른 테이블의 타임 스탬프에 따라 테이블 데이터베이스에서 행 삭제

나는 이것을 사용하여 삭제 열은 1과 같다면 내 메시지 테이블의 행을 삭제하려고 :

DELETE FROM `messages` WHERE `delete` = 1; 

꽤 잘 일했다.

내 테이블 사용자에는 last_seen (예 : 2016-05-08 13:00:26)이라는 타임 스탬프가있는 열과 user_id라는 다른 열이 있습니다. 모든 사용자는 고유 한 ID (예 : 123456789). 내 테이블 메시지에는 receiver_id라는 열이 있습니다. user_id (사용자 테이블) 및 receiver_id (메시지 테이블)의 ID가 일치하는 테이블 메시지에서 모든 행을 삭제하는 절차를 만들고 싶습니다. 타임 스탬프 날짜 (테이블 사용자와 열 last_seen의 경우) 30 일 이상입니다.

나는 여러 가지 시도를했지만 아무도 작동하지 않는 것으로 보입니다. 어떻게 생각하세요?

이것은 처음으로 MySQL을 사용하려고 시도한 것으로 이것은 매우 최적화 된 것은 아니며 학교 및 학습 목적을위한 것입니다. 나는 사용자와 메시지를 데이터베이스에 저장하는 아주 기본적인 시스템을 만들려고하고있다.

도움을 주시면 감사하겠습니다. 감사.

답변

0

이 같은 쿼리 (가입 DATE_SUB)

delete from `messages` 
inner join `user` on `messages`.user_id = `user`.id 
and `user`.last_seen < DATE_SUB(NOW(), INTERVAL 30 DAY) ; 
될 수 있을까요
관련 문제