Jump to content
php.lv forumi

order by trešā tabula


Wuu

Recommended Posts

$result = mysql_query('select DISTINCT t1.tid,t1.title,t1.description,t2.post from '.$INFO['sql_tbl_prefix'].'topics t1 join '.$INFO['sql_tbl_prefix'].'posts t2 on (t1.tid = t2.topic_id) join topic_raiting t3 on (t1.tid = t3.id) where t1.forum_id in ('.$uSet['game_list'].');');

 

Kā lai sakārto pēc lielākā reitinga, būtībā (sum(t3.raiting)/(t3.kopējais ierakstu skaits ar konkrēto ID)) desc, nu galīgi nevaru iebraukt. Laikam nezinu pareizos keywordus.

 

Tā izskatās dati topic_raiting tabulā, id topika id, raiting - vērtējums, voter - balsotājs.

 

vf9cn1ue1tmd2kg6wh2p.png

Link to comment
Share on other sites

Varētu sākt ar normālu kvērija stukturēšanu, mysql atslēgvārdu rakstīšanu ar lielajiem burtiem:

 

Normāla sintakse:

SELECT tas.šitas, tas, šitas FROM user_table ut
JOIN item_table it ON it.id = ut.item_id
WHERE ut.id = 1
ORDER BY ut.id ASC

 

Tas prefikss arī padara to lietu nelasāmu, vismaz īsāku aliasu uztaisi:

 

$pref = $BLABL['yapaypapsoejr'];
$q = "SELECT * FROM {$pref}table";

Link to comment
Share on other sites

Parasti šādus datus (pēc kuriem regulāri kārto) kešo un indeksē. Šijā gadījumā tas būtu tā, ka tev topics tabulā ir lauks rating, kurā arī glabājas reitings. Lait balsojot ātri varētu aprēķināt jaunāko reitingu, vari glabāt arī total_rating (kopējais reitings no visām balsīm) un votes (balsojumu skaits) un pie jauna balsojuma pieskaitīt pie total_rating balsojuma reitingu, pie votes pieskaita 1 un rating aprēķina kā total_rating/votes.

 

Jo pretējā gadījumā, ja tev būs 1000 topiki, kur katrā ir vidēji 1000 balsojumi, kverijs pēc tavas idejas atlasīs 1000 000 ierakstus un vēl tos kārtos. Diez ko efektīvi nav.

Edited by codez
Link to comment
Share on other sites

kaads sakars datu IZVADES kartosanai ar kautkadam matimatiskam darbiibaam ..

ORDER BY ir kaartot IZVADAMOS datus..

sakumaa savac pareizus datus, tos sagrupejot ar GROUP BY vai sasummejot SUM vai COUNT() vai izmantojot citas aggregate funkcijas (kas nu tev tur vajadziigs) un tad izvadi sakartotus ar ORDER BY ..

Edited by Grey_Wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...