Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

Ir tabula "komentāri" (id, komentars, user), kurā glabājas visu lietotāju komentāri. Būtu jāizveido TOP`50 no lietotājiem (user), kas visvairāk komentējuši.

Edited by ray
Posted (edited)

Un ? Kur jautājums ?

 

Varbūt kveriju ?

SELECT author, COUNT(*) as comment_count 
FROM comments GROUP BY author 
ORDER BY comment_count DESC LIMIT 50

Edited by andrisp
Posted (edited)

Es tomēr ieteiktu USERS tabulā uztaisīt lauku comment_count un tad pie katra komentāra pievienošanas pieskaiti tam USERim comment_count un tad TOP komentus vienkārši ar

SELECT username,comment_count FROM users ORDER BY comment_count DESC LIMIT 0, 50;

Edited by betons
Posted (edited)

tad pieņemsim, ka tabulu pārveido šādi [id, komentars, user, views], klāt nāk lauks ar skaitu, cik reizes konkrētais komentārs ir apskatīts. kā izveidot šādu query?

Vēlamais rezultāts būtu šāds:

 

autors, komentāru skaits, skatījumi [kopējais apskatījumu skaits komentāriem].

 

p.s. paldies, iepriekšējais query strādā nevainojami

Edited by ray
Posted

Tie skaitījumi ir cik autors ir pats skatījies vai arī cik autora topiki ir skatīti ?

 

Ja otrais:

 

SELECT SUM(c.views)
FROM c.comments LEFT JOIN authors a ON (
 a.id = c.author_id
)
WHERE a.id = 123

 

Es gan nezinu vai strādā :), uz ātru roku rakstu.

Posted (edited)

Dari tāpat kā ieteicu iepriekš

izveido lietotājam lauku total_comment_views un, katru reizi, kad apskata konkrēta lietotāja komentāru palielina USER tabulā to total_comment_views un tad tev nevajadzēs nekādus sarežģītus kverijus, jo tas total_comment_views jau būs katram lietotājam.

 

 

 

=================

 

Par top 50 kverijiem!

 

Man ir jautājum kādam kurš zin, par andrisp kveriju:

SELECT author, COUNT(*) as comment_count 
FROM comments GROUP BY author 
ORDER BY comment_count DESC LIMIT 50

 

Ja būs 50 autori savadījuši pa 1000 komenti katrs, kāds būs šī kverija laiks, ja visas kollonas būs salikti pareizi indeksi.

REspektīvi vai mysql indeksu koks glabā kautkādas daudzumu starpvērtības vai arī šī kverija ilgums būs 50 000 darbības ?

Edited by betons
Posted (edited)

par to pirmo query vēl, kā izslēgt to, lai vienādos komentārus skaitītu kā vienu?

 

Dari tāpat kā ieteicu iepriekš

 

tā arī izdarīju, tagad vajag līdzīgu lietu, bet nu vnk to cenšos atrisināt ar šiem tabulas laukiem, lai nav jāskaidro situācija pa jaunu

Edited by ray
Posted

par DISTINC iespējām es zinu, ka viņš saskaita unikālos ierakstus, bet īsti nemāku query pārveidot :/

Posted

Ja no manuāļa nesaproti, kur likt, tad veic pārmeklēšanu. Ieliec kādā vietā, pie kļūdas vai nepareiza rezultāta pārvieto uz citu vietu vaicājumā, kur vēl neesi licis. :P

×
×
  • Create New...