【发布时间】:2014-03-18 22:48:53
【问题描述】:
这似乎应该相对(没有双关语)容易做到,但我就是想不通。我有三个表,以多对多的关系加入。一个主“问题”表、一个“状态”表(指示不同状态的名称/描述的查找表:“打开”、“进行中”、“已关闭”等)和一个中间“问题状态”表以允许主要“问题”记录的多个状态。我正在尝试编写 T-SQL 以根据 IssuesStatuses 表中的最新相关记录获取“问题”列表以及最新的 StatusName。表格如下所示:
[问题]表:
- 问题 ID (PK)
- 问题名称
- 问题描述
等等
[问题状态] 表:
- IssuesStatusesID (PK)
- 问题 ID (FK)
- 状态 ID (FK)
- 问题状态日期
[状态]表:
- 状态 ID (PK)
- 状态名称
用户在更新主要问题记录的状态时,将向 IssuesStatuses 表添加多条记录(对于相同的 IssueID)。因此,此查询应获取 [Issues] 记录、来自 [IssuesStatuses] 表的该记录的最新状态,以及来自与该 IssuesStatuses 记录关联的 [Statuses] 表的关联 StatusName 记录。我很确定我需要子查询和/或 Max(StatusDate) 函数,但是当我在 SQL 中尝试这样做时,我开始编写过于复杂的嵌套子查询。
这有意义吗?有人可以帮我解决这个问题吗?
【问题讨论】:
标签: sql sql-server subquery relationship