我有一個檢索表中的所有標籤的功能:笨 - 活動紀錄 - 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;
}
我所說的另一個表「工作」。 「工作」表具有值爲1或0的「草稿」列。我希望COUNT(tags.id)考慮具體標記的工作是否處於草稿模式(1)。
假設有10件作品,例如'design'標記。 COUNT將爲10.但其中有2項工作處於草稿模式,因此COUNT應該是8.我如何管理這些?
如果有疑問,可以隨時切換到vanilla SQL。 – janosrusiczki 2011-03-04 15:23:17
作爲一種預防措施,您需要避免在查詢中使用'*'選擇器,這不是一種好的做法,總是定義您想返回的列名,*從不*執行'SELECT * FROM ...' – Jakub 2011-03-07 05:52:54