我有一个从表中检索所有标签的函数:
function global_popular_tags() { $this->db->select('tags.*,COUNT(tags.id) AS count'); $this->db->from('tags'); $this->db->join('tags_to_work','tags.id = tags_to_work.tag_id'); $this->db->group_by('tags.id'); $this->db->order_by('count','desc'); $query = $this->db->get()->result_array(); return $query; }
我有另一张名为’work’的表. ‘work’表有一个’draft’列,其值为1或0.我希望COUNT(tags.id)考虑具有特定标记的工作是否处于草稿模式(1).
比如,有10件作品被标记为“设计”. COUNT将是10.但是这些工作中有2个处于草稿模式,因此COUNT应该是8.如何管理?
尝试改变:
$this->db->from('tags'); $this->db->join('tags_to_work','tags.id = tags_to_work.tag_id');
至:
$this->db->from('tags,work'); $this->db->join('tags_to_work','tags.id=tags_to_work.tag_id AND work.id=tags_to_work.work_id');
并添加:
$this->db->where('work.drafts',0);