我有三个名为:
的表at_category:
at_category_taxonomy:
at_shop:
我想通过计算结果来加入这三个表。
例如at_category
表中名为电子商店的类别,该值将存储在at_category_taxonomy
表中,此类别ID在{{{{}}中有两个商店1}}表。与剩余的类别 aaa,bbb,ccc 等相同......它可能有一两个商店,零店铺。
示例:
at_shop
现在:拥有3家商店的电子商店类别和拥有1家商店的冰淇淋店
期待输出:
1. at_category
______________
cat_id name
1 Electronic Shops
2 Ice Cream Shops
_______________
2. at_category_taxonomy
_______________________________________________
cat_taxonomy_id cat_id taxonomy
3 1 Electronic Shops
4 2 Ice Cream Shops
_______________________________________________
3. at_shop
________________________________
shop_id shop_name shop_category
1 A 1 (ie.Electronic Shops)
2 B 1 (ie.Electronic Shops)
3 C 1 (ie.Electronic Shops)
4 D 2 (ie.Ice Cream Shops)
________________________________
当我点击no.of商店列中的asc订单时,输出将是
No.Of.Shops (ASC) (Desc) Category Name (ASC) (Desc)
3 Electronic Shops
1 Ice cream Shops
这也是类别名称的vise verse。
现在我想通过使用codeigniter按照desc顺序计算商店数来显示结果。
答案 0 :(得分:0)
不确定这是否是最佳做法。如果你在DB中有很多数据也可能不太好。但我想建议。
1.获取一个数组ID。
2.为每个类别加入如下表格。 (使用数组的foreach循环)
$this->db->select('*');
$this->db->from('at_category');
$this->db->join('at_category_taxonomy', 'at_category.cat_id = at_category_taxonomy.cat_id');
$this->db->join('at_shop', 'at_category.cat_id = at_shop.shop_category');
$this->db->where('at_category', 1);
$query = $this->db->get();
在上面的代码中,$this->db->where
('at_category',从数组中获取ID );
3. $query
是每个类别的结果。
4.每个类别的商店数量可以视为,
$numberOfShos = $query->num_rows();
答案 1 :(得分:0)
选择电子邮件,将(*)计为c FROM订单GROUP BY电子邮件
$this->db->select('COUNT(sh.shop_category) as No_of_shops,cat.name as category_name',FALSE);
$this->db->from('at_shop sh');
$this->db->join('at_category cat', 'cat.cat_id = sh.shop_category');
$this->db->order_by('sh.shop_category');
$query = $this->db->get();
retuen $query->result_array();