Mysql 从SQL中检索最新日期并获取差异

Mysql 从SQL中检索最新日期并获取差异,mysql,datetime,Mysql,Datetime,我的桌子是: QuestionMaster 预期产出为: +-----+-----------------+ |qId |差异日| +-----+-----------------+ |1 |6 | +-----+-----------------+ |2 |23 | +-----+-----------------+ |3 |28 | +-----+-----------------+

我的桌子是:

QuestionMaster

预期产出为:

+-----+-----------------+
|qId |差异日|
+-----+-----------------+
|1    |6                |
+-----+-----------------+
|2    |23               |
+-----+-----------------+
|3    |28               |
+-----+-----------------+

有什么建议吗?
提前感谢。

您需要获取
MAX(answerDate)
,否则MySQL将使用每个组中某些不确定记录的值

SELECT   q.qId, DATEDIFF(MAX(a.answerDate), q.quesDate)
FROM     QuestionMaster q JOIN AnswerMaster a ON a.quesId = q.qId
GROUP BY q.qId

请参见。

如果我在这种情况下使用GROUP BY,我不知道会发生什么“我不想使用子查询?”你是认真的吗?您选择了一种以某种方式工作的语言和技术,但您不想使用它?你有什么理由吗?这只是我实际询问的一部分。这就是为什么可能存在性能问题。 +--------+------+---------------------+ |answerId|quesId|answerDate | +--------+------+---------------------+ |1 |1 |2014-02-08 11:10:05 | +-----------+------+------------------+ |2 |1 |2014-02-10 18:06:05 | +--------+------+---------------------+ |3 |1 |2014-02-07 12:07:10 | +--------+------+---------------------+ |4 |2 |2014-02-09 09:18:05 | +--------+------+---------------------+ |5 |2 |2014-03-01 08:06:05 | +--------+------+---------------------+ |6 |2 |2014-02-15 16:10:45 | +--------+------+---------------------+ |7 |2 |2014-02-12 06:35:25 | +--------+------+---------------------+ |8 |3 |2014-03-05 08:09:05 | +--------+------+---------------------+ |9 |3 |2014-02-25 15:02:19 | +--------+------+---------------------+
SELECT 
question.qid as questionId,
timestampdiff(DAY,question.quesDate,answer.answerDate) AS `answerTime`
FROM QuestionMaster question
Left Join AnswerMaster answer on question.qid = answer.quesid
group by question.qid ;
+-----+-----------------+ |qId |DifferenceInDays | +-----+-----------------+ |1 |6 | +-----+-----------------+ |2 |23 | +-----+-----------------+ |3 |28 | +-----+-----------------+
SELECT   q.qId, DATEDIFF(MAX(a.answerDate), q.quesDate)
FROM     QuestionMaster q JOIN AnswerMaster a ON a.quesId = q.qId
GROUP BY q.qId