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