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 .)
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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.