【发布时间】:2014-12-15 00:12:42
【问题描述】:
我有两张桌子:
标题
- 身份证
- 标题
条目
- 身份证
- 条目
- title_id
- user_id
- 时间(时间戳)
我需要检查我在该标题的最后一个条目之后是否提交了任何新条目。寻找过滤每个标题上的更新(不同于我的 user_id)的查询,并列出结果,其中包含一个显示新条目的数字。
示例
标题
id | title
1 | Cars
2 | Computers
条目
id | entry | title_id | user_id | time
1 | bmw | 1 | 1 | 1418595811
2 | mercedes | 2 | 2 | 1418595812
3 | ibm | 2 | 2 | 1418595813
4 | hp | 2 | 3 | 1418595814
5 | dell | 2 | 1 | 1418595815
6 | acer | 2 | 3 | 1418595816
7 | asus | 2 | 4 | 1418595817
8 | toshiba | 2 | 4 | 1418595818
9 | ferrari | 1 | 3 | 1418595819
10 | toyota | 1 | 4 | 1418595820
11 | honda | 1 | 2 | 1418595821
预期结果:
如果 user_id=1 ->
Cars (3)
Computers (3)
如果 user_id=2 ->
Cars (0)
Computers (5)
如果 user_id=3 ->
Cars (2)
Computers (2)
如上所示,[user_id=1] 提交了一辆汽车 (bmw)。之后,其他用户提交了该标题的条目。在用户上次提交后,我需要查询每个标题的新提交。 (使用时间字段) 唯一需要的是是否有新的提交。如果有,有多少?
我需要这样的东西:
select count(entry)
from entry where time>last_entry_time[user_id]
left join titles
where title.id=entry.title_id
【问题讨论】:
-
您的问题不是很清楚,您能否添加一些示例数据和所需的结果。如果你也可以制作一个 sqlfiddle,那就太好了。
-
只是举个例子
-
为什么
user_id = 3只有一台电脑?他提交hp后,用户1提交dell,用户4提交asus和toshiba,所以应该是3。 -
为什么
Cars (4)是user_id = 1?之后进入的唯一汽车是最后 3 行。 -
我在关于用户 3 的问题中犯了一个错误,我使用的是他的第一个条目,而不是最后一个条目。但还是应该是2台电脑,因为用户4提交了华硕和东芝。