这个查询结果比较奇怪,“中国”和“北京”的列名不一样啊。。再做子查询什么的 如果显示为下面格式就简单多了: 中国 北京 1 2 3 中国 四川 4 3 1 美国 西部 2 2 2 英国 伦敦 1 1 1SELECT gn , name, o1, o2, o3 FROM 表1 JOIN 表2 on 表1.id = 表2.id where 表2.o1 != 0 and 表2.o2 != 0 and 表2.o3 != 0
SELECT min(id),gn,'','','','' from tta a where exists(select 1 from ttb where a.mid=mid) group by gn union all SELECT a.id,a.gn,a.name,b.o1,b.o2,b.o3 from tta a inner join ttb b on a.mid=b.mid where o1+o2+o3<>0 order by 1 ,2,3
如果显示为下面格式就简单多了:
中国 北京 1 2 3
中国 四川 4 3 1
美国 西部 2 2 2
英国 伦敦 1 1 1SELECT gn , name, o1, o2, o3 FROM 表1 JOIN 表2
on
表1.id = 表2.id
where 表2.o1 != 0
and 表2.o2 != 0
and 表2.o3 != 0
SELECT min(id),gn,'','','','' from tta a where exists(select 1 from ttb where a.mid=mid)
group by gn
union all
SELECT a.id,a.gn,a.name,b.o1,b.o2,b.o3 from tta a inner join ttb b on a.mid=b.mid
where o1+o2+o3<>0
order by 1 ,2,3