0

运行一个查询,该查询应返回所有未解决的问题以及它们更新的最后更新时间。

其工作方式是将问题插入到 Question 表中,并将更新/答案插入到 qUpdate 表中,并使用原始问题的外键将它们关联起来。

这是我现在写的查询,但这不是我想要的:

SELECT MAX (qUpdate.UpdateTime) AS LastUpdateTime, Question.ID FROM Question
LEFT JOIN qUpdate ON qID = qUpdate.qID WHERE Status = 'open'GROUP BY Question.ID, Question.Status;

结果:

     lastupdatetime     id
    2012-12-21 20:37:00;7
    2012-12-21 20:37:00;10
    2012-12-21 20:37:00;1000
    2012-12-21 20:37:00;5
    2012-12-21 20:37:00;2
    2012-12-21 20:37:00;9

如您所见,它返回所有问题的最新更新,而不是每个问题的最新更新。我明白为什么,但我不知道如何解决这个问题。

对不起,我的解释有点模棱两可..

基本上:

目前,无论特定问题的更新时间是多少,它都会返回最后更新时间,即它找到所有问题的最大最后更新时间,并为所有打开的问题返回它......

我想做的是列出所有未解决的问题以及该特定工单的最后更新时间。

我正在使用 Postgresql

4

2 回答 2

1

看起来这是你的问题:

LEFT JOIN qUpdate ON qID = qUpdate.qID

应该是这样的:

LEFT JOIN qUpdate ON qID = Question.ID
于 2012-04-08T18:44:15.427 回答
0

试试这个。您不需要按状态分组。

SELECT MAX (qUpdate.UpdateTime) AS LastUpdateTime, Question.ID FROM Question
LEFT JOIN qUpdate ON qID = qUpdate.qID WHERE Status = 'open' GROUP BY Question.ID;
于 2012-04-08T18:44:28.430 回答