Mysql 选择元素列表,如果它们的日期相同,则选择最新的
我有那两张桌子Mysql 选择元素列表,如果它们的日期相同,则选择最新的,mysql,date,select,Mysql,Date,Select,我有那两张桌子 Period (idPeriod, startDate, endDate) Person (idPerson, name, idPeriod,...otherInfos) 我们可以让一个人在很多时间段准时到达。 我的实际查询是返回一个人的最新开始日期 SELECT * FROM person p INNER JOIN period per on per.idPeriod = org.idPeriod where per.endDate = (SELECT MAX(per.sta
Period (idPeriod, startDate, endDate)
Person (idPerson, name, idPeriod,...otherInfos)
我们可以让一个人在很多时间段准时到达。
我的实际查询是返回一个人的最新开始日期
SELECT * FROM person p INNER JOIN period per on per.idPeriod = org.idPeriod
where per.endDate = (SELECT MAX(per.startDate) from per) group by name;
如何检索人员列表。如果此人存在不止一次,请返回具有最新开始日期的人
SELECT name, idPerson
FROM Person
INNER JOIN Period
ON Person.idPeriod = Period.idPeriod
WHERE Period.startDate =
(
SELECT MIN(startDate)
FROM Period AS Per
INNER JOIN Person as P
ON P.id = Per.id
WHERE P.name = Person.name
)
试试这个:
SELECT p.name, p.idPerson, MAX(per.startDate)
FROM person p LEFT JOIN period per on per.idPeriod = org.idPeriod
GROUP BY p.name, p.idPerson
它起作用了,但是它没有考虑到如果一个人只在某个时期内存在@Moh,那么它在您的案例中是无效的,因为您没有将该时期添加到
时期表中