感谢大家在这个问题上的帮助。我的最终解决方案是使用
GROUP BYand
HAVINg子句。
@Iserni,我不需要
SELECt在该时间范围内拥有0个报告的军官,我可以
SELECT使用在时间范围之外的所有具有报告的军官或具有空报告的军官
HAVINg。
这是我的最终代码:
SELECT Officer.id AS OfficerID, Officer.name, Report.id AS ReportID, max(performanceDate) as maxPerfDate FROM OfficerLEFT JOIN report_officer ON Officer.id = report_officer.officer_idLEFT JOIN Report ON Report.id = report_officer.report_idGROUP BY Officer.id HAVINg maxPerfDate is null OR maxPerfDate < "2014-03-23 00:00:00" ORmaxPerfDate > "2014-04-01 00:00:00";
这样做的好处是,我可以利用performanceDate来报告该官员上次提交报告的时间,或者报告该人员从未创建过报告。建议的所有其他解决方案都取消了检索
人员上次创建报告的时间的 宝贵信息的能力。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)