如何使用group by计算另一个表codeigniter中的字段?

时间:2016-02-04 10:26:08

标签: php mysql codeigniter

我有一个名为sitekeys的表:

sitekeys

在此site_key中包含唯一许可证。而称为许可证的字段包含的任何时候都不能使用。 org_id字段包含已分配给它的公司。

现在激活表:

activation

此表中的

site_key包含分配给设备的密钥。

现在我想算一下公司使用的密钥。

与XYZ公司一样,我已经给了10 licenes然后我想知道它们中有多少被使用了,所以我可以在激活表中计算(site_key)。

那么我的查询应该是什么?

我想我必须使用Group_BY才能这样做。

我想要显示我给公司的钥匙以及他们使用过的钥匙

2 个答案:

答案 0 :(得分:1)

我不确切地知道你的桌子的设计如此安全我必须加入两张桌子

SELECT a.org_id, a.licenses, b.used_key from sitekeys a
LEFT JOIN 
(
 SELECT site_key, user_id, count(site_key) as used_key 
 FROM 
 activation b 
 GROUP BY site_key,user_id
) b
on a.site_key = b.site_key 

答案 1 :(得分:0)

$this->db->select("count(activation.site_key)");
$this->db->from("activation");
$this->db->join("sitekeys");
$this->db->group_by("sitekeys.site_key");
$this->db->get();

试试这个