合并具有相同主键的 SQLite3 表

Merging SQLite3 tables with identical primary keys

我正在尝试将两个 table 与有关同一股票列表的财务信息合并:第一个是价格 table(包含每日、每周、每月等...价格数据),第二个是比率 table(包含估值和其他比率)。两个 table 都有相同的主键数字 ID 列(引用相同的股票代码)。创建连接游标后 cur,我的代码是:

CREATE TABLE IF NOT EXISTS prices_n_ratios AS SELECT * FROM
(SELECT * FROM prices INNER JOIN ratios ON prices.id = ratios.id);
DROP TABLE prices;
DROP TABLE ratios;

除了新的 prices_n_ratios table 包含一个名为 ID:1 的额外列外,这工作正常,其名称在进一步处理过程中会导致问题。

如何避免创建此列,可能是通过某种方式从 * 中排除第二个 table 的第一个主键 ID 列(列出所有列名不是一个选项),或者如果我不能,我怎样才能从生成的 table 中删除这个额外的列,因为我发现在 SQLite3 中很难删除它?

只需在 SELECT 子句中列出您实际需要的所有列,而不是使用 *.

或者,加入 USING 子句,它会自动删除重复的列:

SELECT * FROM prices JOIN ratios USING (id)