当coins
具有与m_z_analytics
中的site
相同的数字时,我试图对id
中的所有m_b_browsing_live
求和(请参见下面的结果)。>
表格:
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),'
答案 0 :(得分:0)
仅当您选择带有while($checkeachserver < server_count)
{
$servernumber = 'Server'.$checkeachserver;
$serverip = $ini_array.$servernumber[ServerIP];
$serverport = $ini_array.${$servernumber}[ServerPort];
print_r($serverip);
$checkeachserver++
或site_id = 1
的记录时,您的最终结果是0.29,这可能就是您在此处使用site_id = 2
的原因。
您的问题意味着您没有限制REGEX
仅为1或2,这意味着只要site_id
与site_id
匹配,就应计算SUM列,因此正确答案将为0.49。
无论如何,我尽力去解释你想做什么,所以我给你两个答案:
您的示例查询(错误的0.29)将正确编写为:
id
正确回答您的问题(结果= 0.49)将是:
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);
或者甚至没有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;
语法也是如此:
LEFT JOIN