我正在尝试合并两个表格,其中包含有关同一股票清单的财务信息:第一个是价格表(包含,每日,每周,每月等...价格数据),第二个是比率表(包含估值和其他比率)。两个表都具有相同的主键数字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中删除它?
答案 0 :(得分:1)
只需列出SELECT子句中实际需要的所有列,而不是使用*
。
或者,使用USING子句加入,该子句会自动删除重复列:
SELECT * FROM prices JOIN ratios USING (id)