Autor Zpráva
XazGa
Profil *
Mam 3 tabulky

user (id, username)
temy (id, nazovtemy)
prispevky(id, idtema, prispevok, meno, datum)

A ja chcem vo vypise vsetky temy a zoradene od Posledneho prispenia a kto mu aj
meno kto posledny prispel

Ako na to?

Mam zatial takto:

SELECT
u.username,
t.*,
date_format(t.datum, "%d/%m/%Y %H:%i")temdatum
FROM
temy t
LEFT JOIN
user u on t.iduser = u.id

ORDER by
???


Poradite?
Kajman_
Profil *
Zkuste např.

SELECT
u.username,
t.*,
date_format(t.datum, "%d/%m/%Y %H:%i")temdatum
FROM
temy t
LEFT JOIN
user u on t.iduser = u.id
left join
prispevky p on t.id=p.idtema
where
p.id in (select max(p2.id) from prispevky p2 group by p2.idtema)
ORDER by
p.id desc
XazGa
Profil *
No vyzera, ze funguje a pod cim bude posledny prispievajuci?

Lebo ja chcem vypisat Zakladatela temy a zaroven posledeho pripievaneho..

Da sa to?
Kajman_
Profil *
pod cim bude posledny prispievajuci

p.meno
XazGa
Profil *
OK, ale mam este problem ani za svet neviem ako opravit to tak aby tam slo zobrazit Pocet prispevkov k jednotlivym tematam

SELECT
u.username,
t.*,
date_format(t.datum, "%d/%m/%Y %H:%i")temdatum,
count(p.id) as pocet_prispevkov


FROM
temy t
LEFT JOIN
user u on t.iduser = u.id
left join
prispevky p on t.id=p.idtema
where
p.id in (select max(p2.id) from prispevky p2 group by p2.idtema)
ORDER by
p.id desc






A malo by to ist ale nejde lebo stale pise 1 :(((

Ako to opravit?
Kajman_
Profil *
(select count(p3.id) from prispevky p3 where p3.idtema=t.id) as pocet_prispevkov
XazGa
Profil *
Pockaj a to mam dat teraz do coho?

SELECT
u.username,
t.*,
date_format(t.datum, "%d/%m/%Y %H:%i")temdatum,
(select count(p3.id) from prispevky p3 where p3.idtema=t.id) as pocet_prispevkov


FROM
temy t
LEFT JOIN
user u on t.iduser = u.id
left join
prispevky p on t.id=p.idtema
where
p.id in (select max(p2.id) from prispevky p2 group by p2.idtema)
ORDER by
p.id desc


Tak??


diky
XazGa
Profil *
ide to ;)) duky ale nedalo by sa to aj inak ako so select?
Kajman_
Profil *
ale nedalo by sa to aj inak ako so select?

Způsobů, jak něco v sql popsat je často víc. Můžete si zkusit to napsat klidně jinak nebo je mít předpočítané. Také se můžete podívat např. do zdrojáků minibb (běží na tom tato diskuse) třeba to řeší líp.

Pokud tam máte použitý limit, tak na počet příspěvků bych použil asi ten poddotaz, jak to máte v poslední verzi.
asdAA
Profil *
OK, este mam jeden problem v tom dotaze:

Ak nahodou tema nema ziaden prispevok tak sa nevypise a ja chcem aj take vypisat.
Da sa to lahko v tomto upravit?

Pozeram na to a nic ma nenapada....
Kajman_
Profil *
možná

left join
prispevky p on t.id=p.idtema
and
p.id in (select max(p2.id) from prispevky p2 group by p2.idtema)
asdAA
Profil *
Super, ide :o) diky machre

Ale trocha ma stve, ze potom je dany az uuplne na koniec ale zrejme to je aj dobre...neviem.
Kajman_
Profil *
order by ifnull(p.datum,t.datum) desc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0