Autor Zpráva
Johnik
Profil
Ahoj,
řeším problém s výběrem z db:

Mám tabulky title
- id
- title

a text
- id
- id_title
- text
- time
//záznamů se stejným id_title je víc

A teď co bych potřeboval nějak jednoduše, nejlépe na úrovni mysql vyřešit.
1) Potřebuju vybrat všechny titulky (z title -> title) a ty seřadit podle posledních z text -> time.

Dřív jsem to měl vyřešené natvrdo v title -> time, ale při smazání řádku v text se to dost obtížně udržovalo...

Dík za každou konstruktivní radu!
ninja
Profil
SELECT ti.title FROM title ti LEFT JOIN text te ON ti.id = te.id_title GROUP BY ti.id ORDER BY te.time;
Kajman_
Profil *
Pokud opravdu nepotřebujete text z tabulky text, tak v ninjově příkladu bude stačit jen upravit
order by max(te.time) desc


Pokud chcete i příslušný text, tak by to mohlo vypadat takto nějak..
select ti.*, t1.*
from   title ti
left   join (select t2.id_title, max(t2.time) time
             from   `text` t2
             group  by t2.id_title) t3 on ti.id = t3.id_title
left   join `text` t1 on t1.id_title = t3.id_title
                         and t1.time = t3.time
order  by t1.time desc
Johnik
Profil
Kajman_
ninja
Funguje skvěle, oběma mockrát děkuji.
Toto téma je uzamčeno. Odpověď nelze zaslat.