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