mysql select probléma

Előre is bocsi, ha nagyon primitív lesz a kérdés..

Van egy sqlrészletem, ami egy változóban($a) van:


  $a = "se lect * from todo_adatok where id in (se lect id from todo_base where
nev = 'nev') and sid not in (se lect sid from todo_statusz where
statusz_nev = 'kész') and lejar > now()"

és 3 segédváltozóm ($rend1, $limit, $rend2)


 $rend1 = "lejar";
 $limit = "5";
 $rend2 = "datum";

Az lenne a feladat, hogy $a- t rendezze $rend1 szerint, limitálja $limittel
(eddig ugye

$a . " order by " $rend1 . " limit " . $limit

), és
az így kapott táblát rendezze $rend2 szerint. Na most $rend1 után nem
írhatom ugye, hogy

", $rend2"

, mert az mást adna.

Ha mondjuk mindent megváltoztatok, és $a elején select aid lesz (ami primary
key), akkor az alábbi queryre ezt kapom vissza:


se lect * from todo_adatok where aid in (se lect aid from todo_adatok where id
in (se lect id from todo_base where nev = 'nev') and sid not in (se lect
sid from todo_statusz where statusz_nev = 'kész') and lejar > now() order by
lejar limit 5);
ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT &
IN/ALL/ANY/SOME subquery'

Ha lenne valakinek ötlete arra, hogy hogyan tudnám a fenti lekérdezést
helyesen megcsinálni úgy, hogy a $a- t nem bántom, azt nagyon megköszönném
:- ).

Hozzászólások

H@lye kérdés, de a hiba üzenetet ugye tudod értelmezni...? (Így B.U.É.K 1. napján)

És ugye nem valami 4.x-es mysql ről van szó?

Persze, hogy tudom :- ). Nekem egy olyan megoldásra lenne szükségem, ami ugyanazt csinálja, amit a hibaüzenetes query (csinálna)... . De, 4.1- es mysql, de kipróbáltam 5.0- sra is, és azzal is ugyanezt kaptam!

Szóval igazából azzal van gondom, hogy ha egy selectre ráeresztek egy order by- t, majd egy limitet, hogyan tudom utána egy másik mező szerint rendezni. Elé ugye nem írhatom, mert akkor más sorokat adna vissza, order by x limit n order by y- t pedig nem fogadja el :- ).

Ennek utánanézek, de egy select miatt nem szeretnék mindent átírni, de valószínűnek tartom, hogy postgres nem nagyon van. Amúgy legrosszabb esetben megírom 2 selectből (order by $rend1 limit $limit), ezt while ciklusba, kiszedem az aid- okat, majd rendezen $rend2 szerint, de sokat dobna, ha ez menne egyből... .