[英]mysql - querying 2 tables in one query and creating the difference of the two results.
I'm currently running two queries in PHP, then take the result of each to create the difference: 我目前正在PHP中运行两个查询,然后采用每个查询的结果来创建区别:
$sec = 3600;
$sql = "SELECT SUM(REVENUE) as C FROM REVENUE_LOG WHERE ENTRY_DATE BETWEEN (DATE_SUB(NOW(), INTERVAL $secs second)) AND (NOW())";
$res = $this->db->query($sql)->result_array();
$rev = $res[0]['C'];
$sql = "SELECT SUM(COST) as C FROM COST_LOG WHERE ENTRY_DATE BETWEEN (DATE_SUB(NOW(), INTERVAL $secs second)) AND (NOW())";
$res = $this->db->query($sql)->result_array();
$cost = $res[0]['C'];
$profit = $rev - $cost;
Is it possible to combine this into one query easily? 是否可以轻松地将其合并为一个查询? How? 怎么样?
You need to run each query individually then JOIN them as derived tables: 您需要单独运行每个查询,然后将它们作为派生表进行联接:
SELECT R,C, R-C AS difference
FROM (
SELECT SUM(REVENUE) as R
FROM REVENUE_LOG
WHERE ENTRY_DATE BETWEEN (DATE_SUB(NOW(), INTERVAL $secs second)) AND (NOW())
) AS revenue
JOIN (
SELECT SUM(COST) as C
FROM COST_LOG
WHERE ENTRY_DATE BETWEEN (DATE_SUB(NOW(), INTERVAL $secs second)) AND (NOW())
) AS cost;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.