我有那两张桌子
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的那个。
答案 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
)