Суммирование значений из другой таблицы, получение значений из другой таблицы - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь суммировать coins из m_z_analytics, но заменить эти значения на cpc. Например:

0,01 -> 0,09

0,1 -> 0,1

0,08 -> 0,09

0,1 -> 0,1

site должен иметь тот же номер, что и id из m_b_browsing_live. Используемый идентификатор должен быть: 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 голосов
/ 29 июня 2018

Вы должны суммировать b.cpc, а не a.coins. И в предложении WHERE не должно быть a.coins = b.cpc, поскольку они, как правило, не равны (если бы они были, вам не нужно было бы присоединяться к другой таблице).

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)
...