在SQLite中组合两个表

时间:2010-01-04 10:44:14

标签: sqlite join

我有两张桌子,ta和tb:

TA

key col1  
--------
k1 a 
k2 c 

TB:

key col2  
-------
k2 cc 
k3 ee 

他们用“钥匙”连接。我想知道怎样才能得到一张桌子,如:

key col1 col2  
-------------
k1 a  
k2 c cc 
k3  ee

是否有简单的方法而不是插入每条记录?它们是一百万张表的记录,所以我需要一种有效的方法。

3 个答案:

答案 0 :(得分:4)

制作两张表中的VIEW。编写一个SELECT ... JOIN语句,为您提供所需的结果,然后将其用作VIEW的基础。

示例:

CREATE VIEW
  database.viewname
AS
  SELECT
    ta.key, 
    ta.col1,
    tb.col2
  FROM
    ta
   LEFT JOIN
    tb
   USING(key)

答案 1 :(得分:1)

如果您正在寻找数据以反映原始表格中的更改,那么使用VIEW是正确的方法。

如果您确实希望将数据复制到新表中,则需要执行以下操作:

CREATE TABLE tc(key,col1,col2)

INSERT INTO tc (key,col1,col2)
SELECT ta.key, ta.col1, tb.col2
FROM ta FULL OUTER JOIN tb USING(key)

这将使用旧表中的数据填充新表,但它们可以独立变化。

答案 2 :(得分:0)

对于您正在寻找的内容,您需要进行全外联接,以确保您不会错过任何钥匙。查询完成后,您可以考虑使用它或创建视图。

如果未实现FULL OUTER JOIN,您可能需要解决数据库的限制,通常只需UNION一个左外连接和右外连接即可创建完整的。