Jag tror att jag kanske är på rätt väg, men denna SQL-snutt sorterar bilderna efter första inledande inlägget för bilden och tar inte hänsyn till eftervarande. Jag vill att den ska sortera bilderna efter senaste kommentar för bilden.
[bild1]
Senaste kommentar: 2008-01-01 01:00:00
Antal kommentarer: 2
[bild2]
Senaste kommentar: 2008-01-01 00:00:01
Antal kommentarer: 5
SELECT
pc.id,
count(pc.id) as intKommentarer,
pc.intPhotoID,
pc.intUserID,
pc.intPhotoID,
pc.strPhotoReview,
p.id as PID,
p.strFilenameSmall,
u.id,
u.strUsername,
u.strBirthday,
u.strSex
FROM
photo_comments pc,
photos p,
users u
WHERE
pc.intUserID = u.id AND p.id = pc.intPhotoID
GROUP BY
p.id
ORDER BY
pc.id DESC
LIMIT
0,8
pc.strWritten finns även att tillgå, dvs. datum för bildkommenteringen
Var och vad ändrar jag? :)
LarsGMedlem sedan dec. 200012 464 inlägg SELECT pc.id,
dt.intKommentarer,
pc.intPhotoID,
pc.intUserID,
pc.intPhotoID,
pc.strPhotoReview,
p.id as PID,
p.strFilenameSmall,
u.id,
u.strUsername,
u.strBirthday,
u.strSex,
pc.strWritten
FROM photo_comments pc,
photos p,
users u,
(select intPhotoID,
count(*) as intKommentarer,
max(strWritten) as strWritten)
from photo_comments
group by intPhotoID) dt
WHERE pc.intUserID = u.id
AND p.id = pc.intPhotoID
and pc.intPhotoid = dt.intPhotoID
and pc.strWritten = dt.strWritten
order by pc.strWritten desc
LIMIT 0,8
Tack för snabbt svar! Det verkar dock vara något tokigt.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.24a-standard-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM photo_comments GROUP BY intPhotoID) dt WHERE pc.intUserID = u.id AND p.id =' at line 1
SQL = "SELECT pc.id, dt.intKommentarer, pc.intPhotoID, pc.intUserID, pc.intPhotoID, pc.strPhotoReview, p.id as PID, p.strFilenameSmall, u.id, u.strUsername, u.strBirthday, u.strSex, pc.strWritten FROM photo_comments pc, photos p, users u, (SELECT intPhotoID, COUNT(*) as intKommentarer, MAX(strWritten) as strWritten) FROM photo_comments GROUP BY intPhotoID) dt WHERE pc.intUserID = u.id AND p.id = pc.intPhotoID AND pc.intPhotoID = dt.intPhotoID AND pc.strWritten = dt.strWritten ORDER BY pc.strWritten DESC LIMIT 0,8"
(samma som innan, dock utan radbryt)
LarsGMedlem sedan dec. 200012 464 inlägg Det kom in en högerparentes för mycket efter as strWritten
SELECT pc.id,
dt.intKommentarer,
pc.intPhotoID,
pc.intUserID,
pc.intPhotoID,
pc.strPhotoReview,
p.id as PID,
p.strFilenameSmall,
u.id,
u.strUsername,
u.strBirthday,
u.strSex,
pc.strWritten
FROM photo_comments pc,
photos p,
users u,
(select intPhotoID,
count(*) as intKommentarer,
max(strWritten) as strWritten
from photo_comments
group by intPhotoID) dt
WHERE pc.intUserID = u.id
AND p.id = pc.intPhotoID
and pc.intPhotoid = dt.intPhotoID
and pc.strWritten = dt.strWritten
order by pc.strWritten desc
LIMIT 0,8
Samtidigt en sån sak som jag borde ha upptäckt, men jag inbillar mig fortfarande att subquerys är avancerat och sånt jag inte borde kunna.
Tusen tack LarsG! :)