我有两张 table 。 表 A 和表 B。
表 A 包含各个用户的详细信息。
表B包含3列,分别是“is_completed”、“user_id”和“work_id”......
表 B 跟踪用户完成的工作的详细信息以及工作是否完成。如果完成,则可以为该用户分配其他工作。
问题陈述: 我给用户 1 分配了一项工作,他的 is_completed 为 0(工作未完成)...现在我假设几天后,他的工作完成了,所以我将 is_completed 设置为 1,但同时我将另一项工作分配给了相同的用户 1,现在 is_completed 为 0。所以我有两行相同的用户,在表 B 中,一行 is_completed 为 1,另一行 is_completed 为 0。
如何获取最新的 is_completed,即用户 1 正在工作或忙?
最佳答案
SELECT COUNT(DISTINCT t.work_id) AS working FROM
(
SELECT * FROM
FROM TableB
WHERE user_id = 1
ORDER BY work_id DESC LIMIT 2;
) AS t
结果:
+---------+
| working |
+---------+
| 1 | // not working
| 2 | // working
+---------+
如果用户 1 当前正在执行任务,则此查询将返回 2
,表示最近的 work_id
只有一条记录。如果用户完成了之前的任务并且还没有收到新的任务,它将返回1
,表示最近的work_id
有两条记录(开始和停止)。
我假设分配的work_id
始终在增加。
关于mysql - 从表中获取同一用户的多个条目的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29408051/