Ваш конечный результат 0,29 будет только в том случае, если вы выберете записи с site_id = 1
или site_id = 2
, поэтому, вероятно, вы использовали там REGEX
.
Ваш вопрос подразумевает, что у вас нет ограничений на то, что site_id
ТОЛЬКО 1 или 2, это означает, что до тех пор, пока site_id
соответствует id
, столбец SUM должен быть рассчитан, поэтому правильный ответ будет 0,49.
В любом случае, я старался лучше всего расшифровать то, что вы пытались сделать, поэтому я дам вам два ответа:
Ваш пример запроса (неправильный результат 0,29) будет правильно записан как:
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);
Правильно ответьте на ваш вопрос (результат = 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;
Или даже без синтаксиса LEFT JOIN
это эквивалентно:
SELECT ROUND(SUM(a.coins),2) AS money FROM m_z_analytics a,
m_b_browsing_live b WHERE b.id = a.site_id;
Пример SQL Fiddle