【发布时间】:2011-07-08 21:55:06
【问题描述】:
我有一个从表中检索所有标签的函数:
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”的桌子。 “工作”表有一个“草稿”列,其值为 1 或 0。我希望 COUNT(tags.id) 考虑使用特定标签的工作是否处于草稿模式 (1)。
假设有 10 件作品标有“设计”等标签。 COUNT 将是 10。但是这些作品中有 2 件处于草稿模式,所以 COUNT 应该是 8。我该如何管理?
【问题讨论】:
-
如有疑问,您可以随时切换到普通 SQL。
-
作为预防措施,您需要避免在查询中使用
*选择器,这不是一个好习惯,始终定义您想要返回的列名,NEVER做SELECT * FROM...
标签: php sql codeigniter activerecord