我有两张桌子,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
是否有简单的方法而不是插入每条记录?它们是一百万张表的记录,所以我需要一种有效的方法。
答案 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一个左外连接和右外连接即可创建完整的。