我试图合并两个表与财务信息相同的股票清单:第一个是价格表(包含,每日,每周,每月等…第二个是比率表(包含估值和其他比率)。两个表都有相同的主键数字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)

09-25 15:53