tänk dig att kolumn p har ett id av den första posten i ett forum t.ex.
id t p
1 starten 1
2 och svar på den 1
3 ännu ett 1
4 en ny 4
5 och svaret på den 4
nu vill jag få tag på den första och den sista posten i varje forumsgrupp (p)
select *, (select t as latest from test where id in (select max(id) from test group by p)) from test group by p
grejen är alltså att hitta den med högst id i test per p (forumgrupp) och för alla svar man får där väljer man t (texten) från test utifrån id:ena
MySQL tycker dock inte om att man får flera resultat i en subquery, och errorar... kan man göra det på någe annat sätt i en query?
sql fel
-
- Inlägg: 232
- Blev medlem: 11 dec 2006, 21:09
- OS: Ubuntu
- Utgåva: 10.04 Lucid LTS
- Ort: Sweden
- Kontakt:
SV: sql fel
jag kom på det sj...
select *, (select t from test where id=(select max(t2.id) from test t2 where t1.p=t2.p)) as latest from test t1 where t1.id=t1.p
select *, (select t from test where id=(select max(t2.id) from test t2 where t1.p=t2.p)) as latest from test t1 where t1.id=t1.p