Jump to content
php.lv forumi

inner join


yeahz

Recommended Posts

$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:

g5d2lpgb8iqj1jzl2n6u.jpg

 

posts:

4hvdgox15k3711c6trem.jpg

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

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...