加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Codeigniter – 活动记录 – sql – 复杂连接

发布时间:2020-12-13 14:14:44 所属栏目:PHP教程 来源:网络整理
导读:我有一个从表中检索所有标签的函数: 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'); $thi
我有一个从表中检索所有标签的函数:
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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读