SQL dotaz pomocí database exprorer

jedlicka
Člen | 70
+
0
-

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 | 815
+
0
-

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š?

uestla
Backer | 799
+
0
-

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.

Kamil Valenta
Člen | 815
+
0
-

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.