复合查询
2024/5/22 23:02:41
本文主要是介绍复合查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
复合查询
通过UNION,可以组合多条SELECT语句,并且将它们的结果组合成一个结果集返回,就叫做复合查询。
UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔。
UNION中的每个查询必须包含相同的列、表达式或聚合函数,不过,各个列不需要以相同的次序列出。
Students表:
| id | class_id | name | gender | score | | --- | -------- | ---- | ------ | ----- | | 1 | 1 | 小明 | M | 90 | | 2 | 1 | 小红 | F | 95 | | 3 | 1 | 小军 | M | 88 | | 4 | 1 | 小米 | F | 73 | | 5 | 2 | 小白 | F | 81 | | 6 | 2 | 小兵 | M | 55 | | 7 | 2 | 小林 | M | 85 | | 8 | 3 | 小新 | F | 91 | | 9 | 3 | 小王 | M | 89 | | 10 | 3 | 小丽 | F | 88 |
SELECT name, score FROM Students WHERE score > 90 UNION SELECT name, score FROM Students WHERE name = '小兵'; | name | score | |------|-------| | 小兵 | 55 | | 小红 | 95 | | 小新 | 91 |
这条语句由两条SELECT语句组成,之间用UNION关键字分隔,最终返回一个查询结果集。
UNION和UNION ALL
默认情况下,UNION会从查询结果集中自动去除重复的行。
SELECT name, score FROM Students WHERE score > 90 UNION SELECT name, score FROM Students WHERE name = '小红'; | name | score | |------|-------| | 小红 | 95 | | 小新 | 91 |
如果想返回所有的匹配行,可使用UNION ALL而不是UNION。
SELECT name, score FROM Students WHERE score > 90 UNION ALL SELECT name, score FROM Students WHERE name = '小红'; | name | score | |------|-------| | 小红 | 95 | | 小新 | 91 | | 小红 | 95 |
这篇关于复合查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现