在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)来说,这有点复杂,而且我的时间也很紧。谢谢
发布于 2009-11-27 21:54:43
是的,您可以将这两个查询作为子查询进行内部连接,然后添加计数。
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发布于 2009-11-27 23:01:24
您可以使用联合。联合的第一部分包含来自第一个查询的字母,第二部分包含第一部分未包含的字母:
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。
https://stackoverflow.com/questions/1808877
复制相似问题