Jak v nette\database do ORDER BY dostat poddotaz?
- Caine
- Člen | 216
Zdravím, existuje způsob, jak dostat poddotaz (viz níže) do Selection->order(), aniž by došlo k vytváření joinů?
$order = 'EXISTS (
SELECT * FROM modification WHERE
(modification.offer_id = offer.id) AND
(modification.type = 1024) AND
(NOW() BETWEEN modification.start_time AND modification.end_time)
) DESC';
Takto se to automaticky snaží spojit tabulky offer a modification, což je jednak zbytečné a jednak, aby to fungovalo, muselo by se „modification.“ nahradit za „modification:“.
- Ot@s
- Backer | 476
Možná budu uvažovat špatným směrem, ale… Má smysl dělat podporu pro podobně extrémní zápisy pro „fluent-like“ synaxi? Jde o to, že (např) sub-selekty se v různé části SQL dotazů u některých RDMS nedají ani použít. K těmto (občas) legitimním SQL dotazům se přece dá použít query/exec (případně přímo pohled v db). Neříkám, aby se nedělala podpora SqlLiteral pro order, ale byl bych pro stanovení stop hranice, kdy jo a kdy ne.
- Caine
- Člen | 216
V tomhle případě nemůžu použít query/exec, protože jsem vzal Selection, který se perfektně hodí k filtrování a řazení dat, a rozšíříl to o svý metody. No a teď jsem to potřeboval rozšířit o tohle „extremní“ řazení. Mě osobně to zas tak extrémní nepřijde, každopádně celý by to pěkně vyřešil právě SqlLiteral.