как объединить эти запросы?

я хочу объединить два запроса в один выбор, проблема в том,
если я использую «союз» все говорят, что разное количество столбцов

сначала выберите —

select users.fromsite,count(*) from users where users.fromsite != '' and users.fromsite is not null group by users.fromsite;

второй выбор —

select sum(transfers.mimgebis_before), sum(transfers.mimgebis_after), users.fromsite,count(*) from transfers  join users on transfers.player_id = users.pid where transfers.player_id in (select  users.pid  from users where users.fromsite in (select  users.fromsite from users where fromsite != '' )) and users.fromsite != '' and transfers.date_created between '2013-12-10 08:20:00' and '2015-12-10 08:30:06'  group by users.fromsite limit 0,5;

Результаты первого запроса здесь:

|| *fromsite* || *count(*)* ||
|| fortunejack.de || 2 ||
|| google.com || 3 ||
|| youtube.com || 2 ||

результаты второго запроса здесь:

|| *sum(transfers.mimgebis_before)* || *sum(transfers.mimgebis_after)* || *fromsite* || *count(*)* ||
|| 20000.000000000 ||  || fortunejack.de || 1 ||
|| 53335.000000000 || 2000.000000000 || google.com || 2 ||

Извините за мой плохой английский.

-3

Решение

Я не думаю, что вы хотите union — это потребовало бы, чтобы столбцы были одинаковыми для двух запросов. Я думаю, вы просто хотите left joinгде вы добавляете столбцы из второго запроса в первый. Что-то вроде этого:

select fs.fromsite, fs.cnt1, t.val1, t.val2, t.cnt2
from (select u.fromsite, count(*) as cnt1
from users u
where u.fromsite <> '' and u.fromsite is not null
group by u.fromsite
) fs left join
(select sum(t.mimgebis_before) as val1, sum(t.mimgebis_after) as val2, u.fromsite, count(*) as cnt2
from transfers t join
users u
on t.player_id = u.pid
where t.player_id in (select users.pid  from users where users.fromsite in (select  users.fromsite from users where fromsite != '' )) and
u.fromsite <> '' and t.date_created between '2013-12-10 08:20:00' and '2015-12-10 08:30:06'
group by u.fromsite limit 0,5
) t
on t.fromsite = fs.fromsite;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]