select id, namn
from album as a, bilder as b
where (personligt = 0 or (personligt = 1 AND anvid = {$_SESSION['anvid']}))
and a.id = b.id
order by b.datum desc
eller?
4 svar · 199 visningar · startad av jepsO
Oj, lang rubrik ... I alla fall:
Jag har tva tabeller:
album
id
anvid
namn
personligt
bilder
id
album
datum
Det jag vill astadkomma är en SELECT av id och namn fran album, sorterad efter datum i bilder. Alltsa: Det album som senast uppdaterats med bilder ska visas först.
Att fälten anvid och personligt finns med beror pa att den nuvarande SELECTen ser ut som följer:
SELECT * FROM album WHERE personligt = 0 OR (personligt = 1 AND anvid = {$_SESSION['anvid']}) ORDER BY namn
Betydelsen av WHERE-delen är att om ett album är satt som personligt ska det bara visas om "ägaren" till albumet är den som är inloggad.
Mina JOIN-kunskaper är hyfsat begränsade, sa lite hjälp pa traven med att böka om ovanstaende SELECT vore super.
Tack.
select id, namn
from album as a, bilder as b
where (personligt = 0 or (personligt = 1 AND anvid = {$_SESSION['anvid']}))
and a.id = b.id
order by b.datum desc
eller?
Hmm, sorteringen blir rätt, men om till exempel de tre senaste bilderna av totalt fem laddats upp i albumet AndraAlbumet med id 2, och de övriga tva bilderna ligger i albumet FörstaAlbumet med id 1 blir utskriften:
2 AndraAlbumet
2 AndraAlbumet
2 AndraAlbumet
1 FörstaAlbumet
1 FörstaAlbumet
Varje album ska bara väljas en gang, alltsa:
2 AndraAlbumet
1 FörstaAlbumet
Tack sa langt iaf :) .
select id, namn ,max(b.datum) as lastDate
from album as a, bilder as b
where (personligt = 0 or (personligt = 1 AND anvid = {$_SESSION['anvid']}))
and a.id = b.id
group by id,namn
order by lastDate desc
My god that's beautiful -- tack!