MeleaMedlem sedan juli 20033 147 inlägg Tjena!
Jag har två tabeller, en för kategorier (tbl_cat) och en för poster (tbl_post) som tillhör en kategori. Om jag nu vill lista alla kategorier och bredvid skriva ut senaste posten i tbl_post, hur gör jag då?
Jag har testat lite med left join, men då listar den kategorierna så många gånger som det finns poster i tbl_post.
tbl_cat ser ut såhär:
id, category
1, kategori 1
2, kategori 2
3, kategori 3
4, kategori 4
...och tbl_post ser ut såhär:
id, catid, date
1, 1, 2005-01-20
2, 1, 2005-01-25
3, 2, 2005-01-10
4, 3, 2005-01-15
5, 4, 2005-02-01
6, 4, 2005-01-05
Önskat resultat:
kategori 1 - senaste datum från tbl_post, i detta fallet 2005-01-25
kategori 2 - 2005-01-10
osv...
Tack!
LarsGMedlem sedan dec. 200012 464 inlägg select tbl_cat.category, max(tbl_post.date)
from tbl_cat join tbl_post on tbl_cat.catid = tbl_post.catid
group by tbl_cat.category
MeleaMedlem sedan juli 20033 147 inlägg
LarsG skrev:
select tbl_cat.category, max(tbl_post.date)
from tbl_cat join tbl_post on tbl_cat.catid = tbl_post.catid
group by tbl_cat.category
Tack! :)
Visste inte att min och max kunde jobba med datum.
MeleaMedlem sedan juli 20033 147 inlägg Hm, har testat lite, men det vill inte funka, eftersom den inte hämtar den senaste (max()) på datumet, i order by-argumentet.
select tbl_cat.category, max(tbl_post.date)
from tbl_cat join tbl_post on tbl_cat.catid = tbl_post.catid
group by tbl_cat.category
order by tbl_post.date desc
MeleaMedlem sedan juli 20033 147 inlägg Var ju långt mycket enklare än vad man trodde. Sätt ett prefix på max(tbl_post.date), typ "date", och sortera efter det prefixet. :)