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();