SQLite:当列不同但由一列链接时,如何从另一个 table 创建一个新的 table

SQLite: How to create a new table from another table when the columns are disparate but linked by one column

假设我有一个新的 table 像这样,但还没有值:

key uuid dog cat deer etc

我有一个像这样的填充 table,它具有我想关联到新的空 table:

的值
key uuid format status
1 uuid1 dog hairy
2 uuid1 cat fluffy
3 uuid2 dog shaved
4 uuid3 deer smooth

我想要做的是从 table 2 中获取每个“格式”并在 table 1 中创建一个新列,其中 table 2 中的“状态”是值table 中的新“格式”列。这是我希望 table 看起来像上面的 table 是我正在使用的东西:

key uuid dog cat deer etc
1 uuid1 hairy fluffy null other value
2 uuid2 shaved null null other value
3 uuid3 null null smooth other value

额外棘手的部分在 table 2,uuid1 可以有比 uuid2 更多或更少的“格式”值,反之亦然,继续喜欢 50k uuid,所以我需要用一个空值或假值

这可能吗,还是我处理的数据太荒谬以至于无法实现?

由于您已经创建了新的 table,这意味着您已经知道列 format.
的可能值 在这种情况下,您可以使用条件聚合来填充 table:

INSERT INTO table2 (uuid, dog, cat, deer)
SELECT uuid,
       MAX(CASE WHEN format = 'dog' THEN status END),
       MAX(CASE WHEN format = 'cat' THEN status END),
       MAX(CASE WHEN format = 'deer' THEN status END)
FROM table1
GROUP BY uuid;

查看简化版 demo.