Sql 组合2个select语句结果集

Sql 组合2个select语句结果集,sql,derby,Sql,Derby,有没有一种方法可以组合sql中两条select语句的结果?(与Union运算符类似-但Union仅适用于相同数量和类型的列) 我想做一些像 SELECT * FROM JOBS j UNION SELECT COUNT(fj.Id_Filter) FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job 但它不适用于UNION所有select语句必须具有相同的列数,您可以通过添加带别名的null值列来完成此操作,例如: SELECT ca

有没有一种方法可以组合sql中两条select语句的结果?(与Union运算符类似-但Union仅适用于相同数量和类型的列)

我想做一些像

SELECT * FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter) FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job

但它不适用于UNION

所有
select
语句必须具有相同的列数,您可以通过添加带别名的
null
值列来完成此操作,例如:

SELECT cast(null as int) as cnt,col1,col2 FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter),null,null FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job
您需要使用强制转换/转换在第一个select语句中放置别名。在第2条语句中,您需要使用
null
包含与第1条相同的列数

编辑

SELECT cast(null as int) as cnt,j.* FROM JOBS j 
UNION 
SELECT COUNT(fj.Id_Filter),j.* FROM JOBS j LEFT JOIN FILTER_JOBS fj ON j.Id=fj.Id_Job

除了在您的第一个查询中添加几个空列之外,我不知道其他方法,但我在表作业中有54列。。。因此,这个语句将非常难看,有54个null和54列…@fm_strategy Try第二个解决方案错误:语法错误:在第1行第33列遇到“*”。SQLState:42X01错误代码:30000@fm_strategy尝试将
j.*
添加到上述第一个select语句中,因为
COUNT()
是一个聚合函数,在第二个解决方案中,您是否需要为每个
j
字段设置一个group by?