我有两个表A和B,每个表由nr和name列组成。 A 中的数字列是 B 中数字列的子集。现在,我想创建一个新表 C,其中包含 nr、name_A 和 name_B 列,其中name_A 取自 A 中的名称列(如果 A 中存在 nr,则为 '-'),而 name_B 取自B 中的名称列。
到目前为止我能想到的最好的是:
CREATE TABLE C
SELECT * FROM A
UNION
SELECT * FROM B;
这显然没有给我所要求的结构,因此 SQL 新手的帮助将非常感谢。
最佳答案
您正在寻找的工具是[左]连接:
CREATE TABLE c AS
SELECT b.nr, COALESCE(a.name, '-') AS name_a, b.name AS b.name
FROM b
LEFT JOIN a on b.nr = a.nr
关于SQL:合并两个表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40184560/