Вы можете использовать UNION
обе таблицы, а затем GROUP BY
myid. Например:
select
myid, score, count(*) as f
from (
select myid, score from table1
union all
select myid, score from table2
) x
group by myid, score
РЕДАКТИРОВАТЬ :
Если вы хотите всегда показывать значения high
и low
как ноль при отсутствии для них строк, Вы можете использовать LEFT JOIN
, чтобы сделать это:
select myid, score, sum(c) as f
from (
select 'low' as score union select 'high'
) s
left join (
select myid, score, 1 as c from table1
union all
select myid, score, 1 from table2
) x on x.score = s.score
group by myid, score
Имейте в виду, я не проверял этот последний запрос.