选择元素列表,如果它们具有相同的日期,请选择最新的元素

时间:2013-07-24 21:31:37

标签: mysql date select

我有那两张桌子

Period (idPeriod, startDate, endDate)
Person (idPerson, name, idPeriod,...otherInfos)

我们可以按时在很多时间内安排一个人。 我的实际查询是返回一个具有最新startDate的人

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;

如何检索人员列表。如果此人存在多次,请返回具有最新startDate的那个。

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:0)

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
)

fiddled