我在理解如何最好地處理此查詢時遇到問題。MySQL日期相關查詢
我有一個名爲user_files的表。用戶可以有許多文件。我想獲取去年未修改任何文件的用戶列表。如果用戶在過去一年內至少修改了其中一個文件,則應該排除該用戶。
Table: user_files
file_id | user_id | date_modified
----------------------------------
1 100 2010-10-01
2 100 2010-11-13
3 100 2011-01-01
4 101 2010-10-01
5 101 2010-06-13
6 101 2011-04-12
7 101 2012-04-01
預期的結果將只列出USER_ID 100
下面是一些不良的SQL我一直在玩。這個想法是,我找到所有最近修改他們的文件的用戶,然後找到那些不在該列表中的用戶。
select user_id from users where user_id not in
(
select user_id from
(
select user_id, story_id, max(date_modified) from user_files
where DATE_FORMAT(date_modified, '%Y-%m-%d') >= DATE_SUB(curdate(), INTERVAL 1 YEAR)
group by user_id
)x
)
感謝
很酷。不知道sqlfiddle.com。 – tollbooth 2012-07-12 19:17:18