SQL dotaz pomocí database exprorer
- jedlicka
- Člen | 70
Zdravím,
měl bych dotaz, jak zapsat SQL:
SELECT t1.* FROM cashbox t1
JOIN (
SELECT DATE(datum) AS date_day, MAX(datum) AS last_date FROM cashbox WHERE uid={$uid} GROUP BY DATE(datum)
)
t2 ON DATE(t1.datum) = t2.date_day AND t1.datum = t2.last_date ORDER BY t1.datum DESC
pomocí Nette database exprorer. Jestli to tedy vůbec lze.
Díky za každou radu.
Martin
- Kamil Valenta
- Člen | 820
Nezle. Explorer, resp. SqlBuilder pracuje jen s LEFT JOIN. A pokud se nepletu, tak subdotaz zvládne jen v selectu.
Můžeš si na to napsat pohled a ten pak předhodit Exploreru.
Nebo to nechat jako ->query(), proč nechceš?
- Kamil Valenta
- Člen | 820
uestla napsal(a):
Pokud chceš složitější query a zároveň využít výhody exploreru, můžeš v nativním query vytáhnout ID požadovaných záznamů, a pak je v exploreru načíst.
Tohle při větším počtu ID vychází nesrovnatelně pomaleji.