希望标题不是太模糊,但我会解释。我对高级查询很陌生,所以不幸的是,这不是“我正在尝试这个”,而是“我怎么会这样做”这类问题。
我有一个用户活动表。当他们在网站上执行某些操作时,会将其输入此数据库。遗憾的是,跟踪登录的方式发生了变化。所以现在我需要找到每个用户ID的所有记录,检查每条记录的日期,看看是否有一个具有该日期特定ID的记录。
我意识到这听起来令人困惑所以我会将其分解为最佳的编程逻辑
基本上我会将该id插入到基于该日期不存在该id的表中。
非常感谢任何帮助。提前谢谢。
编辑** 我忘了在这里添加一个基本结构。
id | user_id | item_id | stamp
------------------------------------------------------
1 | user1 | 1 | 2012-08-25
2 | user1 | 2 | 2012-08-25
3 | user1 | 3 | 2012-08-25
4 | user1 | 4 | 2012-08-25
5 | user1 | 6 | 2012-08-25
6 | user1 | 7 | 2012-08-25
7 | user1 | 5 | 2012-08-26
8 | user1 | 11 | 2012-08-26
9 | user1 | 13 | 2012-08-26
这就是基本结构。 User1在2012-08-25
上缺少ID 5,因此我需要在该日期添加它。 user1在2012-08-26
上没有丢失id 5,所以我根本不需要插入任何东西。这有什么用呢?
答案 0 :(得分:1)
SELECT user_id, stamp
FROM my_table
GROUP BY user_id, stamp
HAVING NOT SUM(item_id=5)
以下是一个包含示例数据的SQLFiddle示例:http://sqlfiddle.com/#!2/1ccf5/5