yeahz Posted November 8, 2010 Report Share Posted November 8, 2010 $while_query = "SELECT topics.id, topics.title, posts.text, posts.time FROM topics INNER JOIN posts ON topics.id=posts.topic_id WHERE topics.group_id=" . quote_smart($_GET['id']) . " ORDER BY topics.id desc"; Problēma ir tāda: tiek paņemti visi posti no tiem topikiem, kuri man ir vajadzīgi, bet vajadzīgs ir tikai topika pirmais posts, kā lai ar to cīnās? It kā varētu pievienot arī postiem group_id un pielikt kverijā AND posts.group_id=ID, bet tādu risinājumu es negribu. Ieteikumi, risinājumi? Cerams, ka sapratāt domu. PS pirmo reizi saskaros ar JOIN. tabulas: topics: posts: Quote Link to comment Share on other sites More sharing options...
labaiss Posted November 8, 2010 Report Share Posted November 8, 2010 (edited) Tev vajag, lai ņem tikai pēdējo pievienoto? Vai pirmo pievienoto? precīzāk - kāds faktors ietekmē, ka tas ir "topika pirmais posts"? Edited November 8, 2010 by labaiss Quote Link to comment Share on other sites More sharing options...
yeahz Posted November 8, 2010 Author Report Share Posted November 8, 2010 pirmo Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 8, 2010 Report Share Posted November 8, 2010 Ja beigās pieliek "LIMIT 1", kas būs? Quote Link to comment Share on other sites More sharing options...
yeahz Posted November 8, 2010 Author Report Share Posted November 8, 2010 tas neder, jo tiek izmantota arī dalīšana pa lapām Quote Link to comment Share on other sites More sharing options...
e-remit Posted November 8, 2010 Report Share Posted November 8, 2010 Ja beigās pieliek "LIMIT 1", kas būs? Tad būs vispār tikai viena rinda, nevis topiku saraksts. Jātasa apakšpieprasījums (subquerie), kurš atlasa katram topikam pirmo ierakstu. Ja nevajadzētu posts.time, varētu to arī select daļā atlasīt, bet tā FROM daļā jāliek. Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 8, 2010 Report Share Posted November 8, 2010 Ā, nu ja. Principā var "GROUP BY topics.id" pielikt, nez gan cik pareizi būtu tā darīt. Quote Link to comment Share on other sites More sharing options...
yeahz Posted November 8, 2010 Author Report Share Posted November 8, 2010 Jātasa apakšpieprasījums (subquerie), kurš atlasa katram topikam pirmo ierakstu. Tā jau bija pašā sākumā, taču tagad gribu samazināt kveriju skaitu. Šādi kveriju ir slikti izmantot jo iedomājies, ka kverija ir ciklā. Ā, nu ja. Principā var "GROUP BY topics.id" pielikt, nez gan cik pareizi būtu tā darīt. O, šis nostrādāja, tik ko īsti tas GROUP BY dara, viņš izlasa tikai vienu ierakstu no tiem, kuri atkārtojas ar, šoreiz teiksim, topics.id? Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 8, 2010 Report Share Posted November 8, 2010 O, šis nostrādāja, tik ko īsti tas GROUP BY dara, viņš izlasa tikai vienu ierakstu no tiem, kuri atkārtojas ar, šoreiz teiksim, topics.id? Vispār man ir aizdomas ka viņš nolasa VISUS ierakstus un pēc tam tos apstrādā. Man tagad nav kur pārbaudīt. Labāk šito neizmanto, sāks vēl bremzēt kad topiku būs daudz. Quote Link to comment Share on other sites More sharing options...
e-remit Posted November 8, 2010 Report Share Posted November 8, 2010 Šādi kveriju ir slikti izmantot jo iedomājies, ka kverija ir ciklā. Tā gluži nav - paskaties ar EXPLAIN. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.