mysql 使用UNION ALL问题

SELECTLEVEL,man,womanFROM(SELECTLEVEL,COUNT(*)AS'woman'FROM(SELECTid,LEVEL,sexFROMpla... SELECT LEVEL,man,woman FROM(
SELECT LEVEL,COUNT(*) AS 'woman' FROM
(SELECT id,LEVEL,sex FROM player_attributes WHERE sex=1)t1 GROUP BY LEVEL
UNION ALL
SELECT LEVEL,COUNT(*) AS 'man' FROM
(SELECT id,LEVEL,sex FROM player_attributes WHERE sex=0)t2 GROUP BY LEVEL
)t5 GROUP BY LEVEL

运行后报错:Unknown column 'man' in 'field list'
展开
 我来答
badkano
推荐于2016-05-07 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885367
团长

向TA提问 私信TA
展开全部

起别名不用加单引号的呀

SELECT LEVEL,man,woman FROM(
SELECT LEVEL,COUNT(*) AS woman FROM
(SELECT id,LEVEL,sex FROM player_attributes WHERE sex=1)t1 GROUP BY LEVEL 
UNION ALL 
SELECT LEVEL,COUNT(*) AS 'man' FROM  
(SELECT id,LEVEL,sex FROM player_attributes WHERE sex=0)t2 GROUP BY LEVEL) t5 
GROUP BY LEVEL

 

你用下边这个看能得到你要的结果不


select level,
sum(case when sex=1 then 1 else 0 end) as woman,
sum(case when sex=0 then 1 else 0 end) as man
from player_attributes
group by level
bxbyg
2013-12-24 · TA获得超过326个赞
知道小有建树答主
回答量:471
采纳率:0%
帮助的人:453万
展开全部
SELECT LEVEL,man,woman FROM( SELECT LEVEL,COUNT(*) AS 'woman' FROM
这里有问题,你第二层sql搜出的字段只有level和woman,而你最外面的select 在搜索level, man和woman三个字段,所以会报man没有找到的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liutao5121
2015-10-10
知道答主
回答量:23
采纳率:0%
帮助的人:4.5万
展开全部
union all 不会去重,会把2个表的所有数据都统计起来;
union会有去重功能,将2个表中一模一样的数据(列项内容一样)保留一份;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鸢梨的小布丁
推荐于2018-03-23 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.3万
采纳率:21%
帮助的人:2205万
展开全部
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
MySQL中的UNION
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:
select * from gc_dfys union select * from ls_jg_dfys
这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
MySQL中的UNION ALL
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:
select * from gc_dfys union all select * from ls_jg_dfys
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式