Portál AbcLinuxu, 15. května 2025 21:17
UPDATE Disks set ( SELECT PC_Hostname AS LastPlace, Time AS LastDate
FROM Collections WHERE DiskID = Disk.ID ORDER BY Time DESC LIMIT 1 )
Ale to asi není správná cesta.
Dokážu to udělat po jedné hodnotě, ale takto současně mi to nijak nevychází. Ani na netu jsem při hledání podobnou konstrukci neviděl.
Asi to takto nepůjde, nebo je cestička ?
Díky
Milan
Řešení dotazu:
UPDATE Disks SET
LastPlace = (
SELECT PC_Hostname FROM Collections
WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1
),
LastDate = (
SELECT Time FROM Collections
WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1
) ;
Není čas :)
Ale kdyby to někdo uměl tou hlavou, nechám se poučit
M.
UPDATE Disks AS D JOIN (SELECT DiskID, LastPlace, max(Time) AS LastDate FROM Collections GROUP BY DiskID) AS C ON D.ID=C.DiskID SET D.LastPlace=C.LastPlace, D.LastDate=C.LastDate;Bez záruky.
UPDATE Disks SET
LastPlace = (
SELECT PC_Hostname FROM Collections WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1
),
LastDate = (
SELECT Time FROM Collections WHERE Collections.DiskID = Disks.ID ORDER BY Collections.Time DESC LIMIT 1
) ;
Dotay opravdu není rychlý, ale svoje udělá.
Možná by to šlo přes temporary table ... ale tuhle cestu namám prošlapanou, nebudu to už ani zkoušet .. asi.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.