繁体   English   中英

SQL - 选择单个字段的最大值而不是全部

[英]SQL - Selecting max of indivdual field instead of all

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

它的工作方式是将一个问题插入到问题表中,并将更新/答案插入到 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

看起来这是你的问题:

LEFT JOIN qUpdate ON qID = qUpdate.qID

应该是这样的:

LEFT JOIN qUpdate ON qID = Question.ID

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM