微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个从表中检索所有标签函数
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);

原文地址:https://www.jb51.cc/php/130678.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐