SQL 联合两个没有关系的表和 return 单独的列
SQL Union two tables without relation and return separate columns
我必须 tables 'Table1, Table2' ,它们根本不相关,但我需要对两者进行通用查询,因为有一个过滤器。
我想到了这个解决方案:
select * from(
select t1.idT1 from Table1 t1 where idT1 = 1
union all
select t2.idT2 from Table2 t2 where idT2 = 1) as results
但它 returns 我只有一个名为 idT1 的列,我需要的是两个单独的列:'idT1'、'idT2' 因为我需要知道 id 是否来自 table 1 或 table 2 稍后查找他们的详细信息。
可以吗?
select * from(
select t1.idT1, null as IdT2 from Table1 t1 where idT1 = 1
union all
select null as idT2, t2.idT2 from Table2 t2 where idT2 = 1) as results
或@jarlh 建议
select * from(
select 't1' as T1OrT2, t1.idT1 from Table1 t1 where idT1 = 1
union all
select 't2' as T1OrT2, t2.idT2 from Table2 t2 where idT2 = 1) as results
我假设你问题中的 where IdT1=1 只是一个例子,因为如果确实如此,那么结果将全为 1,正如@Nathan_Sav 指出的那样。
我必须 tables 'Table1, Table2' ,它们根本不相关,但我需要对两者进行通用查询,因为有一个过滤器。
我想到了这个解决方案:
select * from(
select t1.idT1 from Table1 t1 where idT1 = 1
union all
select t2.idT2 from Table2 t2 where idT2 = 1) as results
但它 returns 我只有一个名为 idT1 的列,我需要的是两个单独的列:'idT1'、'idT2' 因为我需要知道 id 是否来自 table 1 或 table 2 稍后查找他们的详细信息。
可以吗?
select * from(
select t1.idT1, null as IdT2 from Table1 t1 where idT1 = 1
union all
select null as idT2, t2.idT2 from Table2 t2 where idT2 = 1) as results
或@jarlh 建议
select * from(
select 't1' as T1OrT2, t1.idT1 from Table1 t1 where idT1 = 1
union all
select 't2' as T1OrT2, t2.idT2 from Table2 t2 where idT2 = 1) as results
我假设你问题中的 where IdT1=1 只是一个例子,因为如果确实如此,那么结果将全为 1,正如@Nathan_Sav 指出的那样。