来自不同表的总和值获得来自其他表的价值

时间:2018-06-28 23:28:49

标签: php mysql select left-join

我正在尝试将m_z_analytics中的coins求和,但将这些值替换为cpc。 例如:

0.01-> 0.09

0.1-> 0.1

0.08-> 0.09

0.1-> 0.1

site的编号必须与id中的m_b_browsing_live相同。使用的ID必须为:1,2(请参见下面的结果)。

表格:

m_z_analytics

id|site_id|coins|
 1|      1| 0.01|
 2|      2|  0.1|
 3|      1| 0.08|
 4|      2|  0.1|
 3|      3|  0.2|


m_b_browsing_live

id| cpc|
 1|0.09|
 2| 0.1|
 3| 0.5|

最终结果应为: 0.38 (0.09 + 0.1 + 0.09 + 0.1)

到目前为止,我已经尝试过:

SELECT SUM(a.coins) AS money FROM m_z_analytics a
LEFT JOIN m_b_browsing_live b ON b.id=a.site_id
WHERE CONCAT(',', `a.site_id`, ',') REGEXP ',(1|2),' AND a.coins=b.cpc

SELECT ROUND(SUM(a.coins),2) AS money FROM m_z_analytics a
LEFT JOIN m_b_browsing_live b ON b.id=a.site_id
WHERE a.site_id IN(1,2) AND a.coins=b.cpc;

1 个答案:

答案 0 :(得分:0)

您应该求和b.cpc,而不是a.coins。而且您不应该在a.coins = b.cpc子句中使用WHERE,因为它们通常并不相等(如果相等的话,就不需要联接另一个表)。

SELECT SUM(b.cpc) AS money
FROM m_z_analytics AS a
JOIN m_b_browsing_live AS b on a.site_id = b.id
WHERE a.site_id IN (1, 2)