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
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?
