

我有一张为经销商和用户准备的桌子。现在每个经销商都有自己的用户。每个用户都通过一个名为key的字段映射到该分销商。因此,每个用户都将有一个名为key的字段,其中将保存分销商的密钥。
现在我有了一个叫做分配块的文件。这是经销商所能拥有的最大用户数。现在,一个分销商有100个用户的分配块,但最初只插入10个用户。因此,我想打印剩余的用户,他可以添加。所以分配块-intitals_user。这将是100-10等经销商登录,我想显示多少用户,他可以添加。
请帮助我生成一个查询,以计数剩余的用户他可以利用。
发布于 2015-12-29 20:22:40
让我们分几步进行:假设我们正在与表中的分销商Zalak合作,该表的allocation_block大小为500,密钥为Zalak-+76-6-500-1,id为6
查找分销商的用户数量
SELECT COUNT(*) AS CurrentUserTotal FROM Users WHERE key = 'Zalak-+76-6-500-1';查找该分销商的allocation_block值
SELECT allocation_block AS AllowedUserTotal FROM Resellers WHERE id '6';把它们放在一起,同时将两者结合起来
SELECT
COUNT(u.*) AS CurrentUserTotal,
r.allocation_block AS AllowedUserTotal
FROM Users u
JOIN Resellers r
ON (u.key = r.key)
WHERE r.id = '6';做数学计算,得到你想要的价值
SELECT
COUNT(u.*) AS CurrentUserTotal,
r.allocation_block AS AllowedUserTotal,
SUM(AllowedUserTotal - CurrentUserTotal) AS RemainingUserTotal
FROM Users u
JOIN Resellers r
ON (u.key = r.key)
WHERE r.id = '6';把所有的都放在一起
使用CI,您现在可以这样做:
public function getRemainingAllowedUsers( $reseller_id ) {
$SQL = "
SELECT
COUNT(u.*) AS CurrentUserTotal,
r.allocation_block AS AllowedUserTotal,
SUM(AllowedUserTotal - CurrentUserTotal) AS RemainingUserTotal
FROM Users u
JOIN Resellers r
ON (u.key = r.key)
WHERE r.id = '" . $reseller_id . "';
";
$query = $this->db->query($SQL);
$result = $query->row();
$current_users = $result->CurrentUserTotal;
$allowed_users = $result->AllowedUserTotal;
$remaining_users = $result->RemainingUserTotal;
}https://stackoverflow.com/questions/32839806
复制相似问题