Well, i think i have it. It was easier than i thought.
select a.player_id, a.team_id, a.starting_date, min(b.starting_date)
from player_team a
left outer join player_team b
on a.player_id = b.player_id
and b.starting_date > a.starting_date
group by a.player_id, a.team_id, a.starting_date
order...