首先我是 mysql noob :D 我试过搜索,但没有任何帮助。我试图用这个查询更新我的数据库。
UPDATE client SET cntr_limit=(SELECT fulltraffic from
(SELECT
client.id,
(SUM(ipacct.byteso)+SUM(ipacct.bytesi)) as fulltraffic
FROM client
LEFT JOIN ips ON client.id = ips.cid
LEFT JOIN ipacct ON ips.ip = ipacct.target
WHERE ipacct.tag = 1
GROUP BY client.id
) as x
) +322122547200 ;
我得到子查询返回超过 1 行。我知道子查询不能超过一行,但我需要使用 GROUP BY。如果我删除 GROUP BY 查询有效,但每个客户端都获得从所有 ips 计算的流量,而不是为每个 id 计算不同的流量。
如果我使用。
SELECT
client.id,
(SUM(ipacct.byteso)+SUM(ipacct.bytesi)) as fulltraffic
FROM client
LEFT JOIN ips ON client.id = ips.cid
LEFT JOIN ipacct ON ips.ip = ipacct.target
WHERE ipacct.tag = 1
GROUP BY client.id;
我越来越
id fulltraffic
1 5100993724986
3 410550845834
4 790726628007
5 204212941099
6 440290245087
8 587044969960
如果我删除 GROUP BY 我得到
id fulltraffic
1 487196626849368
提前致谢。