题解 | 查找山东大学或者性别为男生的信息

select device_id,gender,age,gpa
from user_profile
where university = '山东大学'

union all  #组合数条SQL查询,将它们的结果组合成一个结果集,且不去重,只要满足一个条件就被筛选出来

select device_id,gender,age,gpa
from user_profile
where gender = 'male'


# -union组合数条SQL查询
# 利用 UNION,可给出多条 SELECT 语句,将它们的结果组合成一个结果集。
# 使用 UNION 很简单,所要做的只是给出每条 SELECT 语句,在各条语句之间放上关键字 UNION。但需要注意的是UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不过, 各个列不需要以相同的次序列出)
# UNION 从查询结果集中自动去除了重复的行;换句话说,它的行为与一条SELECT语句中使用多个WHERE子句条件一样,使用 UNION 时,重复的行会被自动取消。 这是UNION 的默认行为,如果想不去重的返回所有的匹配行,可使用 UNION ALL,union all 可以不去重

# 错误答案:
# select device_id,gender,age,gpa
# from user_profile
# where university = '山东大学' or gender = 'male'
# 原因分析:
# # or等价于union,进行了去重操作
# 示例:根据题意应该是从查找山东大学会选出2条数据,从性别男会选出5条数据,返回的结果应该是7条数据
# 如果使用OR(功能=union),则会剔除山东大学选出的2条数据(因为从male的角度已经选取过了)
# 即从山东大学挑选出的信息=从男性挑选出的信息时,剔除该条数据

全部评论

相关推荐

07-17 11:56
门头沟学院 Java
感谢东子的收留
熬夜脱发码农:无敌了,这是我看到第二个京东的提前批大佬了我还在畏畏缩缩准备八股算法
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
今天 13:43
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务