des Posted July 8, 2004 Report Share Posted July 8, 2004 nepiekritīšu Tev, des. KĀRTOT PIRMS GROUP BY nebūs pareizi, jo imho neviena DB nesaka, kādā secībā iedos sagrupētos rezultātus. manuprāt kārtošana jāveic pēc GROUP BY. *** doma ir, ka ir viens selects, kuraa vispirms sakaartojam datus vajadziigaa kaartiibaa, peec tam jau no shii selecta rezultaatiem veicam selectu, kuram tad ir tas group by. *** shiis teemas jautaajums bija, kaa ietekmeet pashu group by, ja neizmanto nevienu agregaatfunkciju :) arii "select n,t,max(i) as mi from tbl group by n order by mi" nekaadi nespeej ietekmeet kolonnas t veertiibu - group by vienkaarshi panjem pashu peedeejo (kura ir peedeejaa, to zina tikai jamais pats :) ). arii tas, ka katraa grupaa veel ieselekteejam max(i), min(i), whatever(i) nekaadi nespeej ietekmeet t veertiibu :) un order by peec group by vairs neko nespeej ietekmeet :) tikko paarbaudiiju, ka Oracle, piemeeram, uzreiz pie "select n,t from tbl group by n " izmet, ka t "is not a group by expression". taa luuk. taa kaa nav, ko briiniities, ka SQL specificaacijai neatbilstoshi queriji, kurus mysql tomeer palaizh cauri, izdod gljukainus rezultaatus :) Link to comment Share on other sites More sharing options...
Venom Posted July 8, 2004 Report Share Posted July 8, 2004 (edited) vispār nesaprotu kamdēļ tāds vaicājums radījies risinājums 2 kvērijos: izvēlamies visu temporary tabulā apgrieztā kārtībā un no tās group by Edited July 8, 2004 by Venom Link to comment Share on other sites More sharing options...
AcidRain Posted July 8, 2004 Author Report Share Posted July 8, 2004 A vaicājums tāds radās tādēļ, ka ir tabula ar miljons ierakstiem, no kuriem ik pa pieciem vai vairāk ierakstiem ir piesaistīti pie citas tabulas vienu ierakstu. Tāllāk selektējot tās otrās tabulas kaut kādsu tur ierakstus gribēju piesaistīt pirmās tabulas pēdējo ierakstu, nesanāca :( Apmēram tā. Link to comment Share on other sites More sharing options...
Venom Posted July 8, 2004 Report Share Posted July 8, 2004 Mjā, problēmas nostādne loģiska. Risinājumi ir, be nav ļoti lakoniski. 1) īzvēlēties bez group by nosacījuma, bet ar order desc, tīri pie izvada čekot if ($current_parent==$previous_parent) continue; db ar miljoniem rakstu nederēs 2) ievietotjot jauno "komentāru", updeitot "flag" tipa kolonnu, kura pasaka kurš tad ir tas pēdējais raksts, e.g. UPDATE comments SET `islast`=0 WHERE `parent`=$x INSERT INTO comments ... `parent`=$x,islast=1 SELECT articles.*,comments.* FROM articles RIGHT JOIN comments ON comment.`parent`=article.uID AND/WHERE comments.islast=1 3) aizgāju rakstīt MySQLam feature request Link to comment Share on other sites More sharing options...
AcidRain Posted July 8, 2004 Author Report Share Posted July 8, 2004 :lol: :lol: :lol: Nēnu es atrisināju to problēmu kā tu minēji otrajā piemērā un strādā tīri labi :) Link to comment Share on other sites More sharing options...
Recommended Posts