Jag vill ha ut unikt intArtikelSerial sorterade efter när en artikel kommenterades senast. Har testat DISTINCT, samt att gruppera på samtliga fält i selectlistan. I min enfald trodde jag att den feta raden i koden skulle fixa saken eftersom endast en post kan stämma överens med det villkoret.
Hur fasiken gör man?
SELECT a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik
FROM artikel a
INNER JOIN artikel_comment ac
ON ( a.intArtikelId = ac.intArtSerieId )
[b]WHERE a.intArtikelSerial = a.intArtikelId [/b]
ORDER BY ac.dteCommentDate DESC LIMIT 8
Men jag har fortfarande lite beskymmer. Den sorterar knasigt. Jag vill ha den artikeln som kommenterades senast överst och sedan den näst senaste osv.
SELECT ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik
FROM artikel a
LEFT OUTER JOIN artikel_comment ac
ON ( a.intArtikelId = ac.intArtSerieId )
WHERE a.intArtikelSerial = a.intArtikelId
GROUP BY ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik
ORDER BY ac.dteCommentDate DESC LIMIT 8
Din fråga är inte entydig och borde egentligen inte godkännas som korrekt.
SELECT ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik , max(ac.dteCommentDate) as x
FROM artikel a
LEFT OUTER JOIN artikel_comment ac
ON ( a.intArtikelId = ac.intArtSerieId )
WHERE a.intArtikelSerial = a.intArtikelId
GROUP BY ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik
ORDER BY x DESC LIMIT 8
Din fråga är inte entydig och borde egentligen inte godkännas som korrekt.
SELECT ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik , max(ac.dteCommentDate) as x
FROM artikel a
LEFT OUTER JOIN artikel_comment ac
ON ( a.intArtikelId = ac.intArtSerieId )
WHERE a.intArtikelSerial = a.intArtikelId
GROUP BY ac.intArtSerieId, a.intArtikelSerial, a.intArtikelId, a.intKatId, a.strArtikelRubrik
ORDER BY x DESC LIMIT 8
Tack, fungerar utmärkt LarsG!
Jag provade en sådan variant också, kan man inte sortera efter ordningsnummer i mysql?
I och med att du har group by så får du två poster
A
--
1
2
men vilket värde från B skall användas för sorteringen då A = 1?
1 eller 3? Beroende på vilket värde man skulle välja så blir det olika sortering och det finns inget som säger vilket av de möjliga B-värdena som skall användas.
Din fråga är inte entydig och borde egentligen inte godkännas som korrekt
LarsG skrev:
Hur då 100% korrekt?
Alltså så att frågan blir entydig och därmed korrekt.
Jag misstänker att det går att göra med saker som mysql-(versionen) inte stödjer, men kan den bli entydíg och korrekt även med denna dbms. I detta avseende borde det väl kvitta om sorteringen sker på ena eller andra fältet/aliaset?