将多个表组合成单独的行和列

时间:2018-01-17 11:01:20

标签: sqlite union-all

我在SQLite中组合表时遇到问题。假设我在SQLite数据库中有3个表。每个表有10列。

所有3个表中只有一个共同的列是" time",它以一串数字给出。我想合并所有三个表,并保留公共时间列,所以我最终会得到一个" time"列加上其他27个列都是不同的。然后,我希望通过时间列的合并表来订购。

问题是每个表中的时间值是完全随机且不同的,因此我无法基于公共时间值加入。因此,合并表中的行数将等于表1中的no.rows +表2中的no.rows +表3中的no.rows。我已经考虑过INNER JOINS等但是这并没有。因为没有共同的价值而适合......

非常感谢任何建议!

被修改

表1 时间,第1栏 100012,蓝
100015,红色
100018,黄色

表2 时间,第2栏 12414,沙发
12416,主席

表3 时间,第3栏 159801,鸟
157981,松鼠
179719,熊

期望的输出:
时间,第1栏,第2栏,第3栏 12414,NULL,沙发,NULL
12416,NULL,主席,NULL
100012,蓝色,NULL,NULL
100015,红色,NULL,NULL
100018,黄色,NULL,NULL
157981,NULL,NULL,Squirrel
179719,NULL,NULL,Bear

查询: SELECT * FROM Table1 (某种加入) *表2 (某种加入) *来自表3 按时间顺序;

1 个答案:

答案 0 :(得分:0)

连接将多个表中的值组合到同一行中。但是你想要单独的行;这可以使用compound query

完成
SELECT Time, Column1, NULL AS Column2, NULL AS Column3 FROM Table1
UNION ALL
SELECT Time, NULL,    Column2,         NULL            FROM Table2
UNION ALL
SELECT Time, NULL,    NULL,            Column3         FROM Table3
ORDER BY Time;