webForumDet fria alternativet

Bildgalleri, visa senaste kommentarer med bild

Databaser & SQLur Databashanterare & SQL

4 svar · 441 visningar · startad av Grillcliff

GrillcliffMedlem sedan sep. 200032 inlägg
#1

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
#2
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
GrillcliffMedlem sedan sep. 200032 inlägg
#3

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
#4

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
GrillcliffMedlem sedan sep. 200032 inlägg
#5

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! :)

137 ms totalt · 3 externa anrop · v20260731065814-full.94fcd635
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)