W dniu 6 czerwca 2012 21:11 użytkownik Szymon Kajewski <lysysoft@o2.pl> napisał:
 Jeżeli planujesz odpalać to częściej, stwórz sobie tablicę tymczasową, do której wrzuć wynik zapytania, i jej użyj.

już mam, dzięki wielkie.

mysql> create temporary table temp (a INT);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO temp SELECT a.customerid FROM cash a WHERE a.time <= unix_timestamp()  GROUP BY a.customerid HAVING SUM(a.value) >= 0;
Query OK, 876 rows affected (1.53 sec)
Records: 876  Duplicates: 0  Warnings: 0

mysql> UPDATE documents SET closed = 1 WHERE customerid IN (SELECT a from temp) AND type IN (1, 3, 5) AND cdate <= unix_timestamp() AND closed = 0;
Query OK, 0 rows affected (1.83 sec)
Rows matched: 0  Changed: 0  Warnings: 0


jak widać w sumie <3s.

da się to w jednym zapytaniu zrobić?
--
Pozdrawiam
Marcin / nicraM