26. juni 2002 - 11:35Der er
5 kommentarer og 1 løsning
Join
Jeg har to tabeller, som jeg forsøger at joine...men jeg har et problem :-/
tabel - kontakter: Dette er en tabel over kontakter (personer
tabel - noter: Her kan man notere under hver kontakt (dvs. der er mange noteringer for hver person)
----------------------- SELECT * FROM kontakter LEFT JOIN noter ON kontakter.kontakterid=noter.kontakt_id -----------------------
Ovenstående JOIN giver ALLE noteringer, men hvis jeg nu kun ønsker én notering pr. person (dvs. den seneste - denne kan findes via et min timestamp-kolonne).
Jeg er desværre ikke den store SQL-haj - bare at svaret er derefter .)
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
SELECT kontakter.felt1, kontakter.felt2, kontakter.felt3, noter.felt1, Max(noter.timestampCol) FROM kontakter, noter LEFT JOIN noter ON kontakter.kontakterid=noter.kontakt_id GROUP BY kontakter.felt1, kontakter.felt2, kontakter.felt3, noter.felt1
Det der er jo rigtig rigtig lækkert - og det ser ud til at virke :) Den der MAX(tabel.kolonne) - udtrykker den, at der kun må være ét resultat - eller kan den i princippet også udtrykke noget andet?
OK, men dvs. den knytter sig til GROUP BY - og GROUP BY, er det så en måde at sige du skal gruppere svarene (dvs. kære SQL-database du skal ikke vise alle resultater - du skal gruppere dem, fordi de faktisk i virkeligheden hænger sammen) - er sådan noget i den retning....?
Lige en ekstra ting, jeg kan se, at den lige nu tager den første note (dvs. ASC i forhold til "timestamp" - kan man få den til at tage DESC, så den viser den senest noterede note?
Synes godt om
Ny brugerNybegynder
Din løsning...
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.