Не соединяет результат двух таблиц

265
26 мая 2017, 12:54

Надо объединить результат с двух таблиц

(SELECT 0 as conversions, SUM(clicks) as clicks FROM general_report WHERE _offer_id = 1043 AND _aff_id = 9 AND (`date_time` BETWEEN '2017-05-24' AND '2017-05-24'))
UNION
(SELECT COUNT(*) as conversions, 0 as clicks FROM conversion_report WHERE _offer_id = 1043 AND _aff_id = 9 AND (DATE(conversion_time) BETWEEN '2017-05-24' AND '2017-05-24'))

На выходе получаю

+-------------+--------+
| conversions | clicks |
+-------------+--------+
|           0 |   1547 |
|          24 |      0 |
+-------------+--------+

А мне нужно

+-------------+--------+
| conversions | clicks |
+-------------+--------+
|          24 |   1547 |
+-------------+--------+

Что я делаю не так ?

Answer 1

Вы объединяете 2 запроса. Первый выдаст строчку 0, 1547, второй - 24, 0, поэтому результат выполнения sql-запроса логичен. Сделайте так:

select sum(conversions), sum(clicks)
from
((SELECT 0 as conversions, clicks as clicks 
 FROM general_report 
 WHERE _offer_id = 1043 AND _aff_id = 9 
    AND (`date_time` BETWEEN '2017-05-24' AND '2017-05-24'))
 UNION ALL
(SELECT 1 as conversions, 0 as clicks 
 FROM conversion_report 
 WHERE _offer_id = 1043 AND _aff_id = 9 
    AND (DATE(conversion_time) BETWEEN '2017-05-24' AND '2017-05-24'))) t
READ ALSO
Защита своего приложения

Защита своего приложения

ЗдравствуйтеИмеется приложение с встроенными покупками, рекламой

231
Магия в Java Substring

Магия в Java Substring

Столкнулся со следующим непониманием, при переносе кода на c# под javaНужно вытащить из строки символов подстроку, взять, начиная с некоторой...

198
WebViewClient onReceivedSslError уязвимость

WebViewClient onReceivedSslError уязвимость

Всем привет у меня такая проблема Оповещение системы безопасности Ваше приложение использует незащищенную версию обработчика WebViewClientonReceivedSslError

252