将2个表合并到不等列的查询中

时间:2015-10-13 21:37:12

标签: sql h2

我有2个表,两个都有一个TIMESTAMP列

我想显示两个表合并在一起的所有行,按此TIMESTAMP列排序。

两个表中的任何行都不太可能具有完全相同的TIMESTAMP值。

我该怎么做?

为简单起见,例如:

  • TABLEA - COLUMNS ID,TIMESTAMP,COLXYZ,COLZZZ
  • TABLEB - COLUMNS ID,TIMESTAMP,COLABC,COLDEF,COLGHI

想:

结果 - 专栏ID,TIMESTAMP,COLXYZ,COLZZZ,COLABC,COLDEF,COLGHI

按TIMESTAMP升序排序

如果有一些通配符方式可以在不指定其他列的情况下执行此操作,那会更好(我的意思是通配符从表中获取所有列)

1 个答案:

答案 0 :(得分:1)

一个简单的联合都应该足够了。然后用空值填充每个表上缺少的列。

SELECT ID, TIMESTAMP, COLXYZ, COLZZZ, NULL AS COLABC, NULL AS COLDEF, NULL AS COLGHI
FROM TABLEA
UNION ALL
SELECT ID, TIMESTAMP, NULL, NULL, COLABC, COLDEF, COLGHI
FROM TABLEB
ORDER BY TIMESTAMP;

我并没有真正看到你可以防止必须拼出每个表的列名的方法。