- my $query = $dbh->prepare(q{SELECT f.id, coords(x,y,z), target, mission
- , f.amount, tick, back
-FROM fleets f
-LEFT OUTER JOIN current_planet_stats p ON f.target = p.id
-WHERE NOT ingal AND f.uid = ? AND f.sender = ? AND
- (back >= ? OR (tick >= tick() - 24 AND name = 'Main'))
-GROUP BY f.id, x,y,z, mission, tick,back,f.amount,f.target
-ORDER BY x,y,z,mission,tick
+ my $query = $dbh->prepare(q{
+(
+ SELECT DISTINCT ON (mission,name) fid,mission,name,tick, NULL AS eta
+ ,amount, NULL AS coords, planet AS target, NULL AS back
+ FROM fleets f
+ JOIN full_fleets USING (fid)
+ WHERE uid = $1 AND planet = $2 AND tick >= tick() - 24
+ AND name = 'Main' AND mission = 'Full fleet'
+ ORDER BY mission,name,tick DESC
+) UNION (
+ SELECT fid,mission,name,landing_tick AS tick, eta, amount
+ , coords(x,y,z), target, back
+ FROM fleets f
+ JOIN launch_confirmations USING (fid)
+ LEFT OUTER JOIN current_planet_stats t ON target = t.id
+ WHERE uid = $1 AND f.planet = $2 AND back >= tick()
+ AND landing_tick - eta - 12 < tick()
+)