[仅供参考,这不是家庭作业——我想每个人都认为是因为我努力将我的问题格式化为一种简单易读的形式?再次,不是家庭作业。我在工作,只是想学习。谢谢。]
我非常坚持一个棘手的问题。我是 Java 人,我不是 SQL 人,因此非常感谢您提供任何帮助!
我有一个 PROJECT 表和一个 TASK 表,如下所示:
**PROJECT**
projectId
name
PROJECT 有许多任务:
**TASK**
taskId
projectId
description
userId // the user who is assigned the task
status // either "IN_PROGRESS" or "COMPLETE"
sequence // the numeric sequence of the TASK in the PROJECT
例如:
Project
projectId=100
name="Build House"
Task
taskId=250 // task IDs are not necessary in numerical order
sequence=1
description="Pour Foundation"
userId=55
status="COMPLETE"
Task
taskId=240
sequence=2
description="Build walls"
userId=56
status="COMPLETE"
Task
taskId=260
sequence=3
description="Install windows"
userId=57
status="IN_PROGRESS"
Task
taskId=245
sequence=4
description="Build roof"
userId=58
status="IN_PROGRESS"
我需要两个查询:
(1) 对于给定的 projectId,获取“当前任务”。当前任务是编号最小sequence
但未完成的任务编号。在我的示例中,getCurrentTask(projectId=100)
将返回 taskId 260(因为它是第一个不完整的)。
(2) 对于给定的 userId,获取分配给“当前任务”的项目列表。在我的示例中,getProjectsForUserId(userId=57)
将返回 projectId 100;getProjectsForUserId(userId=58)
不会返回任何东西。