mysql - 需要某种形式的联合

时间:2009-11-27 13:47:01

标签: mysql

在mysql中

,如果我有一个返回类似

的查询

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)来说有点复杂,而且我很时间紧迫。 谢谢

2 个答案:

答案 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