SQL:合并两个表中的列

标签 sql sqlite

我有两个表AB,每个表由nrname列组成。 A 中的数字列是 B 中数字列的子集。现在,我想创建一个新表 C,其中包含 nrname_Aname_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/

相关文章:

python - 在Python和sqlite中转义字符

PHP MySQL 分页问题——附加页面显示所有行

mysql - 选择历年发表的作者

mysql - 使用 select 命令更新 mysql 代码

Django 转移到 PostgreSQL 无法导入固定装置,说明数据太长

iphone - iPhone两次之间的时差

Python3 - 有没有一种方法可以在一个非常大的 SQlite 表上逐行迭代,而无需将整个表加载到本地内存中?

MYSQL 向列插入特定值

mysql - 如何以 Crystal 的方式从表中提取所需的数据?

sqlite - 有状态服务结构服务 - 复制磁盘中更改的文件