Jump to content
nusun

SQL COUNT + while values

Recommended Posts

Visu vakaru ņēmos, tā arī nesanāca.

Tātad veidoju sadaļas ar itemiem katrā. Vajag izvilkt sadaļas un itemu skaitu no katras sadaļas.

Kods no codeigniter modeļa.

		$this->db->select('cate.*, items.*, COUNT(review.id) as total');
		$this->db->from('items');
		$this->db->where('items.catid', 1);
		$this->db->join('cate', 'items.catid = cate.id');
		$this->db->join('review', 'review.id = items.id', 'left');
		$query = $this->db->get();
		return $query->result_array();

Kamēr nav counts izvada visus rezultātus kur items.catid = 1

Bet kā pievienoju šo count, man izvada tikai pirmo item un parāda review count no visām kas ir zem cate.1

Share this post


Link to post
Share on other sites

Man jau škiet, ka vajag COUNT(items.catid), jo review.id jau būs unikāls katram ierakstam.

Share this post


Link to post
Share on other sites

Ko tieši tu vēlies izvadīt? Jo tev tur ir kategorijas, itemi un vēl kaut kādi reviews. Ne vienmēr labākais risinājums ir mēģināt sabāzt visu vienā kverijā.

Share this post


Link to post
Share on other sites

Ir teiksim 2 grupas

Metals un Plastmass

tatad nak itemi, 0.skruves, 0.lenki, 1.dibeli, 1.uzlikas.

Vajag lai izvada ka forumu sava zina, ir kategorija, zem kuras ir vairakas lietas un vajag lai saskaita kopejo review skaitu. zem katras skruves, lenka utt.

Labi Slide sala nelikt vrb viena query, bet man sis viss stav uz codeigniter, vai vins man maz atlaus pieprasit modeli no view?

 

Sorry par double profile :D man uz nusun ir has dota parole. nezinu no galvas

Edited by V_Vendetta

Share this post


Link to post
Share on other sites
1 hour ago, V_Vendetta said:

Labi Slide sala nelikt vrb viena query, bet man sis viss stav uz codeigniter, vai vins man maz atlaus pieprasit modeli no view?

Atļaus, lai gan skats nav pareizākā vieta, kur to darīt

 

Varbūt kas šāds nostrādās, kā vēlies? Ja saki, ka bez count tev rezultāti sanāk pareizi... no hate, šis variants prasa the least amount of effort

$this->db->select('cate.*, items.*, 
	(SELECT COUNT(*) FROM review WHERE review.id = items.id) as total');
$this->db->from('items');
$this->db->where('items.catid', 1);
$this->db->join('cate', 'items.catid = cate.id');
$query = $this->db->get();
return $query->result_array();

 

  • Upvote 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.