如何使用SQLite合并具有不同行数的2个表中的列?

时间:2017-04-19 03:30:10

标签: sqlite

我有2个表,'tab1'和'tab2':

tab1是:

col1
25.0
30.0
31.0
25.0

tab2是:

col1    col2
25.0    11.0
30.0    99.0
31.0    57.0

我希望通过将tab1中的col1值与tab2中的col1相匹配来获得以下合并表结果(从而填充使用tab2中的col2值):

col1    col2
25.0    11.0
30.0    99.0
31.0    57.0
25.0    11.0

我目前正在使用此sqlite代码:

INSERT INTO `merged_table1` 
SELECT * FROM tab1 LEFT JOIN tab2
ON tab1.col1 = tab2.col1;

但是,结果不正确(给出一个额外的列):

25  25  11
30  30  99
31  31  57
25  25  11

1 个答案:

答案 0 :(得分:0)

如果列实际上具有相同的名称,则可以使用USING子句进行连接,该子句会自动删除重复的列:

INSERT ...
SELECT *
FROM      tab1
LEFT JOIN tab2 USING (col1);

否则,只需告诉数据库您想要哪些列:

INSERT ...
SELECT tab1.col1,
       tab2.col2
FROM      tab1
LEFT JOIN tab2 ON tab1.col1 = tab2.col1;