Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:b1fd:d7...–

peter
MySQL › Více přístupů / zbytečná data?
6. 6. 2014   #190814

Myslel jsem to takhle s tim tmp... Do tmp si vytahnes 30 clanku, jenom idcka. Dalsi SELECT potrebujes, abys k nim pridal i data z clanky. To same delas v druhe casti, ale nakonec to zlimitujes z 30 na 1.
SELECT ... -- ten tam musis mit, jak koukam na priklady
(SELECT ... FROM (SELECT ... FROM clanky ... ORDER BY LIMIT 30) AS tmp LEFT JOIN clanky ON ...) UNION
(SELECT ... FROM tmp LEFT JOIN clanky ON ... LIMIT 1)

peter
MySQL › Více přístupů / zbytečná data?
6. 6. 2014   #190813

#30 Matěj Andrle
Pokud to budes mit zakombinovane v jednom selectu, stejny sql dotaz, tam bude v kesi. Takze druhej stejny select pak provede za 0.0001s, nebude nic hledat, radit a pod. Jeste mne napada, jestli by slo tomu prvnimu dotazu priradit pres AS nejake jmeno a v druhem to jmeno pouzit.
SELECT (SELECT FROM (SELECT ... LIMIT 30) AS tmp) UNION SELECT (SELECT FROM tmp)

V dokumentaci dal vidim priklady s (ale asi bude treba prepnout na transakce, coz je dalsi sql dotaz a ty nemas rad moc sql dotazu :) )
* CREATE TEMPORARY TABLE
* CREATE DEFINER=`user`@`%` PROCEDURE
* DECLARE Result cursor for


http://dev.mysql.com/…queries.html
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

http://dev.mysql.com/doc/refman/5.0/en/union.html
(SELECT a FROM t1 WHERE a=10 AND B=1) UNION (SELECT a FROM t2 WHERE a=11 AND B=2) ORDER BY a LIMIT 10;

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý