update_batch update query not example php mysql codeigniter

php - update - CodeIgniter: contando los resultados de una tabla unida



update codeigniter example (2)

¡Lo tengo! :)

$this->db->select(''blog.*, COUNT(comments.id) as num_comments'') ->from(''blog'') ->order_by(''blog.id'', ''desc'') ->limit(3); $this->db->join(''comments'', ''blog_entry_id = blog.id'') ->group_by(''blog_entry_id'');

Ahora sé cómo unir dos tablas, me gustaría contar realmente el número de filas en la segunda tabla con registros activos .

Diga, tengo estas dos tablas:

blog comments ------- ---------- id id title blog_id content comment

No, quiero tomar las tres últimas entradas de blog y contar la cantidad de comentarios por entrada de blog, todo en una consulta. Intenté algo como esto, pero no funciona:

$this->db->select(''*'') ->from(''blog'') ->order_by(''blog.id'', ''desc'') ->limit(3); $this->db->join(''comments'', ''blog_entry_id = blog.id'') ->group_by(''blog_entry_id'') ->count_all_results(''comments'');

¿Que debería hacer? ¿Qué estoy haciendo mal?


Sí, esta es la forma correcta,

$this->db->where(''p.status'',''Active''); $this->db->where(''p.admin_status'',''Active''); $this->db->select("p.id,p.date,p.user_id,p.title,p.contents,p.category_id,p.status,p.admin_status,u.username,i.mediaid,COUNT(c.id) as comments")->from(''posts as p'')->limit($num,$start)->order_by($order,$format); $this->db->join(''users u'',''u.id=p.user_id'',''left''); $this->db->join(''user_meta m'', ''m.user_id = p.id'',''left''); $this->db->join(''user_profile_image i'', ''i.userid = p.id'',''left''); $this->db->join(''comments c'', ''c.postid = p.id'',''left''); return $this->db->get()->result();