Php 如何使用codeigniter中的GROUPBY来计算一些值?
在以下情况下,我如何使用group by: 我有一个名为Sitekey的表,在这里我有一个许可证密钥列表 Site_Key字段包含我的产品的许可证密钥。 Org_id包含已分配该密钥的组织的id 现在我有另一个表叫做激活。 其结构是: 现在在这个表中,Site_key包含licensekey。和设备信息 现在,我想在分配给谁的表中显示可用的许可证 我这样做:Php 如何使用codeigniter中的GROUPBY来计算一些值?,php,mysql,codeigniter,Php,Mysql,Codeigniter,在以下情况下,我如何使用group by: 我有一个名为Sitekey的表,在这里我有一个许可证密钥列表 Site_Key字段包含我的产品的许可证密钥。 Org_id包含已分配该密钥的组织的id 现在我有另一个表叫做激活。 其结构是: 现在在这个表中,Site_key包含licensekey。和设备信息 现在,我想在分配给谁的表中显示可用的许可证 我这样做: public function get_key() { $this->db->select('*');
public function get_key()
{
$this->db->select('*');
$this->db->from('sitekey');
$this->db->join('company', 'sitekey.org_id = company.id');
$this->db->order_by('sitekey.id','desc');
$query = $this->db->get();
$result = $query->result();
return $result;
}
现在我想得到激活表中使用的密钥数!
>在sitekey表中,licenses字段包含许可证的数量,以便公司可以使用该密钥多次。现在我想从中得到我给他们的钥匙和他们用过的钥匙。
所以我想我需要使用GROUPBY,那么我如何编写这样的查询呢
注
我想数一数激活表中的密钥。例如,有一个键:4CAC-9CA7,那么我想知道它被使用了多少次?所以我想计算所有钥匙的数量
公司表:
试试这个也许对你有帮助
public function get_key() {
$result=$this->db->select('*')
->from('activation')
->group_by('yourfield')
->get();
$key_count= $query->num_rows();
return $result;
}
对不起,我还不能发表评论,所以我必须发布一个答案 如果在激活表中每个键都有一行,则可以计算所有内容
$this->db->from('activation')
->where('expiry_date <', date('U'))
->count_all_results();
你试过$this->db->groupbycolumnname@AjayMakwana我在用户指南中看到了这一点。但是我不知道怎么在这里使用它!我的问题是什么here@MathBio我不明白你的意思,请解释一下,我不需要使用过期数据,我只想显示我给组织的密钥数量,以及他们从组织中使用的密钥数量公司如何添加公司表,但我想得到激活表中使用的每个密钥的计数,那么为什么你不能只按站点密钥分组呢?选择company.org\u name,sitekey.site\u key,从激活中选择COUNT*,其中user\u id=company.id从sitekey加入sitekey.org上的company\u id=company.id它必须返回公司名称,4CAC-9CA7,2次另一家公司,4CAC-9CA7,12次我不需要这里的过期数据。我只想统计一下我给他们的许可证以及他们从itin sitekey表中使用的许可证。许可证字段定义了他们可以使用的次数key@Rajan我编辑了我的答案,你能告诉我最后一部分是否适合你吗?
$this->db->from('activation')
->where('expiry_date <', date('U'))
->count_all_results();
$this->db->from('activation')
->group_by('site_key')
->where('expiry_date <', date('U'))
->count_all_results();
$this->db->from('activation a')
->select('COUNT(a.id) as used, s.licenses as max, max - used as left')
->group_by('a.site_key')
->join('sitekey s', 'a.sitekey = s.site_key')
->get()->results();