webForumDet fria alternativet

Hjälp med en SQL fråga

2 svar · 547 visningar · startad av UrMe

UrMeMedlem sedan apr. 2001762 inlägg
#1

Jag har 2 tabeller som ser ut så här:

node:
nid | type | title | created
1 | image | image1 | 112222222323
2 | image | image 2 | 112222233333
3 | gallery | gallery1 | 111222222222
4 | image | image3 | 111223232323
5 | gallery | gallery2 | 22222222222

node_galleries:
gid | nid
3 | 1
3 | 2
5 | 4

Jag vill lista ut de 5 gallerierna som senast har en bild tillagd till sig. Så jag sorteringen ska ske på bildens created kolumn.

Har skrivit denna SQL-fråga:

     $query = "SELECT ng.gid, n.nid, n.created, n2.title FROM ".
     "{node} n INNER JOIN {node_galleries} ng ON n.nid = ng.nid INNER JOIN {node} n2 ON ng.gid = n2.nid ".
     "WHERE n.type = 'node_gallery_image' ".
     "GROUP BY ng.gid ". 
     "ORDER BY n.created DESC ".
     "LIMIT 0,5 ";

Denna listar ut gallerierna men datumet plockas inte från senaste tillagda bilden, utan den blir från den första tillagda.

Jag kan ju sätta MAX(n.created) as created men då får jag ändå inte samma n.nid etc.

Förstår inte hur jag ska göra, någon som har ett tips?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select node_galleries.gid, 
       node.nid, 
       node.created,
       node.title 
  from node
  join node_galleries
    on node.nid = node_galleries.nid 
 where node.created in
      (select max(created)
         from node n
         join node_galleries ng 
           on n.nid = ng.nid
        where ng.gid = node_galleries.gid)
          and n.type = 'node_gallery_image')
   and node.type = 'node_gallery_image'
 order by node.created desc 
 limit 0,5
UrMeMedlem sedan apr. 2001762 inlägg
#3

Hmm frågan fungerar, men kanske inte skrev att jag vill inte ha ut ett galleri två gånger på dessa 5 gallerier, utan galleriet ska vara unikt. Dvs om de 5 senaste bilderna är i galleri X så ska bara galleri X listas 1 gång ändå.

EDIT: Hmm om created är exakt samma på två bilder i ett galleri så listar den galleriet två gånger.

EDIT: En "fullösning" på det är kanske att gruppera på node_galleries.gid bara?

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