,如果我有一个返回类似
的查询B-2; c-4,e-9
有没有办法可以将它与
联合起来A-0; B-0; C-0; d-0; E-0; F-0;
获得最终结果
A0; B-2; C-4; d-0; e-9,f-0?
我知道接近它的更好方法是重写原始查询,但它对我的级别(完整的sql noob)来说有点复杂,而且我很时间紧迫。 谢谢
答案 0 :(得分:0)
是的,您可以将两个查询内部连接为子查询,然后添加计数。
select
letter,
a.count + b.count as total
from (
select letter, count(*)
from blah blah lots of joins
group by letter
) as a
inner join (
select letter, count(*)
from blah blah lots of joins
group by letter
) as b
on a.letter = b.letter
答案 1 :(得分:0)
你可以使用联盟。联合的第一部分有第一个查询的字母,第二部分是第一部分没有的字母:
select * from query1
union all
select * from query2 b
where not exists (select * from query1 a where a.letter = b.letter)
如果查询返回整个字段(a-0
而不是a
),则必须使用substring
。