UNION
1、UNION 必须由两条或两条以上的 SELECT 语句组成。,语句之间用UNION关键字进行分隔。
2、UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)。
3、列数据类型必须兼容,类型不必完全相同,但是必须是DBMS可以隐含地转换类型。
4、UNION从查询结果集中自动去除重复行。
5、若需要每个条件的匹配行全部出现(包括重复行),则必须使用UNION ALL 而不是WHERE。
6、使用UNION的组合查询时可以应用不同的表。
7、在使用UNION组合查询时,只能使用一条ORDER BY 子句,它必须出现在最后一条SELECT语句之后,即对于结果集不存在用一种方式排序一部分,而又用另一种方式排序另一种部分的情况,因此不允许使用多条ORDER BY子句。
SELECT 列名 FROM 表名1
UNION
SELECT 列名 FROM 表名2;
注意:
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
UNION ALL
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
SELECT 列名 FROM 表名1
UNION ALL
SELECT 列名 FROM 表名2;
注意:
UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
UNION1、UNION 必须由两条或两条以上的 SELECT 语句组成。,语句之间用UNION关键字进行分隔。2、UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)。3、列数据类型必须兼容,类型不必完全相同,但是必须是DBMS可以隐含地转换类型。4、UNION从查询结果集中自动去除重复行。5、若需要每个条件的匹配行全部出现(包括重复行...
两个不同的表进行
查询
,需要把结果
合并
,
比如table1的列为 id, user_id, type_id,pro_id;
table2的列为 id,user_id,collect_id;分别如下图所示
table1:
table2:
将两个表的
查询
结果
合并
到一起的
查询
语句为
select *, null as collect_id from table1 where user_id = 527
union
select id,user_id,null as type_id,null as pro_id, collect_id from table2 where user_id = 527
select * from 表1
union
select *from 表2
union
all:不去除重复记录
select * from 表1
union
all select *from 表2
一次渗透过程中目标使用的
SQL
Server有联合注入,发现使用
union
all 不报错,
union
报错,同时还有一个就是字段的类型,发现类型不对也会报错,贴张图
union
+all+select+123123,1,'2','3',null,null,null--+- 不报错
union
+select+123123,1,'2','3',null,null,null--+- 报错
1
union
结果集种的列名总是等于第一个select语句中的类型。
2
union
学生表: 课程表:
id 姓名 课程号(外键) 课程号,课程名
‘1’, ‘xix’, 1 1,’ 语文’ ‘2’, ‘cic’, 2 2, ‘数学’ ‘3’, ‘ddi’, 4
总用量 112
-rw-r--r--. 1 root root 2391 4月 1 17:27 a.
sql
-rw-r--r--. 1 root root 54716 4月 1 21:16 b.
sql
-rw-r--r--. 1 root root 52325 4月 1 21:47 c.
sql
[root@localho
--
union
select stuAge,stuNumber from Tbstudent
union
select stuMath,stuEnglish from Tbstudent
select MAX(stuEnglish),M...