这里我想获得两个表值的总和,我的表名称是datas
和abc_datas
。首先,我获取了 datas
表的结果,如下 -
$query1 = $this->db->query("SELECT *, SUM(amount) AS total_sum
FROM datas
WHERE user_id = $user_id")->row();
接下来我获取了abc_datas
的结果,如下-
$query2 = $this->db->query("SELECT *, SUM(amount) AS total_sum
FROM abc_datas
WHERE user_id = $user_id")->row();
现在我想组合这两个查询,并通过组合 total_sum
返回总计。例如,如果第一个表的 total_sum
为 500
,第二个表为 1000
,我希望输出为 1500
但仅提取第一个查询值
这是我写的最后一个查询 -
$query = $this->db->query("SELECT *, SUM(amount) AS total_sum1
FROM datas
WHERE user_id = $user_id
UNION ALL
SELECT *, SUM(amount) AS total_sum2
FROM abc_datas
WHERE user_id = $user_id;")->row();
return $query;
我像这样更改了查询以获得所需的输出 -
$query =$this->db->query("SELECT
(SELECT SUM(amount) as total_sum1 FROM datas WHERE user_id=$user_id) + (SELECT SUM(amount) as total_sum2 FROM abc_datas WHERE user_id=$user_id) as total_sum,(SELECT SUM(agent_amount) as total_agent_amount1 FROM datas WHERE user_id=$user_id) + (SELECT SUM(agent_amount) as total_agent_amount2 FROM abc_datas WHERE user_id=$user_id) as total_agent_amount,(SELECT SUM(profit) as total_profit1 FROM datas WHERE user_id=$user_id) + (SELECT SUM(profit) as total_profit2 FROM abc_datas WHERE user_id=$user_id) as total_profit
FROM dual");
return $query->row();
最佳答案
这是结果
$query = $this->db->query("SELECT SUM(amount) AS total_sum
FROM (SELECT amount FROM datas WHERE `user_id`=$user_id
UNION ALL
SELECT amount FROM abc_datas WHERE `user_id`=$user_id) s");
return $query->row();
关于php - 我们可以合并两个查询,将结果返回为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48518872/