Új hozzászólás Aktív témák

  • sztanozs
    veterán

    üdv!

    szeretnék egy olyan lekérdezést írni, amivel olyan listát kapok, mint itt PH-n a topikok listája, tehát hogy a bennük található utolsó hozzászólás dátuma szerint legyen rendezve.

    ebből indultam ki:
    SELECT t.id, t.topic_name, p.send_date
    FROM topics AS t, posts AS p
    WHERE t.id=p.topic_id
    ORDER BY p.send_date DESC
    LIMIT 0, 10

    ez így okés, viszont értelemszerűen minden topik többször szerepel, mert egy azon topikban lehet több friss hsz ugye. ennek kiküszöbölésére két dolgot próbáltam:

    1: SELECT DISTINCT t.id, ...

    2: ... GROUP BY t.id ...

    a többi kódrészlet maradt.

    az eredmény az lett hogy most már valóban csak egyszer szerepel minden topik a listában, viszont nem az eredeti lekérdezés szerinti sorrendben, hiába a DESC, minden topic ID-hoz fogta és első első találatot lehozza (ami a legelső hsz), majd ezeket rendezi csökkenőben.

    gondoltam hogy belső select-ezni kellene esetleg, de nem jöttem rá a megoldásra. tudnátok ebben segíteni? köszi előre is. :)

    SELECT t.id, t.topic_name, p.lastpost
    FROM topics AS t, (
    SELECT topic_id, max(p.send_date) as lastpost
    FROM posts
    GROUP BY topic_id
    ORDER BY lastpost DESC
    LIMIT 0, 10) AS p
    WHERE t.id=p.topic_id

Új hozzászólás Aktív témák