SQLITE:基于公共条目水平合并大型 sql 表
SQLITE: horizontally combining large sql tables based on common entry
我有多个 table 我需要根据一个公共条目水平加入。对于第一组 tables,我需要加入看起来像这样的 tables:
Table 1 维 = 1093367x18 看起来像
ROW #
ID
TEMPERATURE
DESCR
...
NUMB
1
32
23
Y
...
23
2
47
54
N
...
24
...
...
...
...
...
...
1,093367
78
12
Y
...
45
Table 2 维 = 1093367x648
ROW #
ID
COLOR 1
COLOR 2
...
COLOR 648
1
32
RED
BLUE
...
GREEN
2
47
BLUE
PURPLE
...
RED
...
...
...
...
...
...
1,093367
78
YELLOW
RED
...
BLUE
我需要 [Table 1 |Table 2]:
ROW #
ID
TEMPERATURE
DESCR
...
NUMB
COLOR 1
COLOR 2
...
COLOR 648
1
32
23
Y
...
23
RED
BLUE
...
GREEN
2
47
54
N
...
24
BLUE
PURPLE
...
RED
...
...
...
...
...
...
...
...
...
...
1,093367
78
12
Y
...
45
YELLOW
RED
...
BLUE
这可以在 SQLITE 中完成吗?我只找到了解决方案,其中我必须为 table 2 键入所有 648 列。这是在 SQLITE 中执行此操作的唯一方法吗?
如果使用 USING
子句而不是 ON
子句进行连接,则不必在 SELECT
语句中写入任何列名:
SELECT *
FROM Table1 INNER JOIN Table2
USING(id);
这将 return 2 个表的所有列(首先是 Table1 的行,然后是 Table2 的行)但是 USING
子句中使用的列(在本例中是列 id
连接所基于的)将只 returned 一次。
您可以在 Determination of input data (FROM clause processing) 中找到有关 USING
子句的更多信息。
查看简化版 demo.
我有多个 table 我需要根据一个公共条目水平加入。对于第一组 tables,我需要加入看起来像这样的 tables:
Table 1 维 = 1093367x18 看起来像
ROW # | ID | TEMPERATURE | DESCR | ... | NUMB |
---|---|---|---|---|---|
1 | 32 | 23 | Y | ... | 23 |
2 | 47 | 54 | N | ... | 24 |
... | ... | ... | ... | ... | ... |
1,093367 | 78 | 12 | Y | ... | 45 |
Table 2 维 = 1093367x648
ROW # | ID | COLOR 1 | COLOR 2 | ... | COLOR 648 |
---|---|---|---|---|---|
1 | 32 | RED | BLUE | ... | GREEN |
2 | 47 | BLUE | PURPLE | ... | RED |
... | ... | ... | ... | ... | ... |
1,093367 | 78 | YELLOW | RED | ... | BLUE |
我需要 [Table 1 |Table 2]:
ROW # | ID | TEMPERATURE | DESCR | ... | NUMB | COLOR 1 | COLOR 2 | ... | COLOR 648 |
---|---|---|---|---|---|---|---|---|---|
1 | 32 | 23 | Y | ... | 23 | RED | BLUE | ... | GREEN |
2 | 47 | 54 | N | ... | 24 | BLUE | PURPLE | ... | RED |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1,093367 | 78 | 12 | Y | ... | 45 | YELLOW | RED | ... | BLUE |
这可以在 SQLITE 中完成吗?我只找到了解决方案,其中我必须为 table 2 键入所有 648 列。这是在 SQLITE 中执行此操作的唯一方法吗?
如果使用 USING
子句而不是 ON
子句进行连接,则不必在 SELECT
语句中写入任何列名:
SELECT *
FROM Table1 INNER JOIN Table2
USING(id);
这将 return 2 个表的所有列(首先是 Table1 的行,然后是 Table2 的行)但是 USING
子句中使用的列(在本例中是列 id
连接所基于的)将只 returned 一次。
您可以在 Determination of input data (FROM clause processing) 中找到有关 USING
子句的更多信息。
查看简化版 demo.