02. marts 2005 - 09:32Der er
24 kommentarer og 2 løsninger
Nyeste record
Hej. Jeg har dette query, som giver mig en liste med brugere fra userlog og en dato .problemet med denne dato er at jeg får den første MySQL finder og det er som regel den ældste. Jeg vil gerne have den nyeste dato.
SELECT l.LogDate,u.UserName FROM userlog u LEFT JOIN log l ON l.LogUserID = u.UserID WHERE u.UserName <> '' GROUP BY u.UserID, u.UserName ORDER BY l.LogDate DESC
SELECT MAX(l.LogDate),u.UserID,u.UserName FROM userlog u LEFT JOIN log l ON l.LogUserID = u.UserID WHERE u.UserName <> '' GROUP BY u.UserID, u.UserName ORDER BY l.LogDate DESC
Nu søger jeg i noget andet data, men samme princip: SELECT MAX(HistoryDate),b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3,h.HistoryStatus,h.HistoryDate FROM dataTest b LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR GROUP BY b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3 ORDER BY HistoryDate
Den forskel der er, er at de selvfølgelig bliver sorteret efter MAX(), men jeg vil jo have den nyeste record med fra den tabel jeg joiner. Her er det History, men det er den samme jeg får med hver gang.
Her vil jeg gerne have vist data fra dataTest med den sidste record joinet, men når jeg gør det får jeg den øverste der melder Åben. Jeg vil have den skal melde Lukket.
Hvis du bare vil have den nyeste har du ikke brug for gruppering:
SELECT HistoryDate, b.CVRNR, b.NAVN_1, b.NAVN_2, b.NAVN_3, h.HistoryStatus FROM dataTest b LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR ORDER BY HistoryDate DESC LIMIT 1
SELECT HistoryDate,b.CVRNR,b.NAVN_1,b.NAVN_2,b.NAVN_3,h.HistoryStatus FROM dataTest b LEFT JOIN History h ON b.CVRNR = h.HistoryCVRNR WHERE b.CVRNR = '12345678' ORDER BY HistoryDate DESC LIMIT 1
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.