将SQLite3表与相同的主键

时间:2017-04-08 10:03:26

标签: database sqlite primary-key identity-column

我正在尝试合并两个表格,其中包含有关同一股票清单的财务信息:第一个是价格表(包含,每日,每周,每月等...价格数据),第二个是比率表(包含估值和其他比率)。两个表都具有相同的主键数字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表包含一个名为ID:1的额外列,其名称在进一步处理过程中会导致问题时,此工作正常。

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

1 个答案:

答案 0 :(得分:1)

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

或者,使用USING子句加入,该子句会自动删除重复列:

SELECT * FROM prices JOIN ratios USING (id)