im试图使用MySqli
获得最新考试日期的唯一名称和电话号码的表格这是我的主表 -
field acno value date
a 11 12 17-11-2015
b 11 3 17-11-2015
c 11 234 17-11-2015
d 11 2321 17-11-2015
d 11 12 01-09-2016
d 11 32 28-04-2016
a 11 23 17-11-2015
a 11 324 01-09-2016
d 11 43 17-11-2015
Output - I'm looking for
field acno value date
a 11 324 01-09-2016
b 11 3 17-11-2015
c 11 234 17-11-2015
d 11 12 01-09-2016
将问题分为部分:
首先获得每个名称的最大考试日期。
SELECT max(exam_date) max_exam_date, `field`, acno
FROM Table
GROUP BY field, acno
然后使用子集限制整个数据集中的结果。
SELECT A.Name, A.Subject, A.Phone_number, A.Exam_date
FROM TABLE A
INNER JOIN (SELECT max(exam_date) max_exam_date, `field`, acno
FROM Table
GROUP BY `field`, acno) B
on A.`field` = b.`field`
and A.Acno = b.acno
and A. Exam_date = max_exam_date
外部应用加入会更容易,但是我不相信MySQL此时支持这些。
这确实假定"名称"是唯一的含义,如果鲍勃被列出了4次,它们都是相同的"名称"
还注意,返回的电话号码将是与最大考试日期的电话相对应的。如果在同一最大日期上进行了两次考试,则将返回两者。