如何加入两个表并使用第二个表覆盖第一个表?

杨贴东

我正在开发一个有多个项目共享预配置清单的待办事项应用程序,我想要的是能够修改每个项目包含的清单。

我想到的是有 2 个单独的表:1 个用于共享表,1 个用于每个项目的修改,就像这样

CREATE TABLE checklist (
    id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
    title text NOT NULL,
    description text NOT NULL,
);

CREATE TABLE modification (
    project_uuid uuid,
    id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
    title text NOT NULL,
    description text NOT NULL,
);

每个项目都有自己的清单,基于用户可以修改的预配置清单,对共享清单所做的任何修改都将反映到所有项目中。

有没有办法使用第二个“修改”表在“清单”表之上进行修改?如果在“修改”中找不到某一行,它会从“清单”中获取它,如果两个表中都存在一行,“修改”中的行会覆盖“清单”中的行吗?

例如,如果我有:

SELECT * FROM checklist;
id | title  | description
---+--------+-------------
 1 | Item 1 | Dummy item
 2 | Item 2 | Dummy item

SELECT * FROM modification;
project_uuid | id | title  | description          |
-------------+----+--------+----------------------+
  1          | 2  | Item 2 | Modified description |

我想要这个结果

 id |  title | description          |
----+--------+----------------------+
  1 | Item 1 | Dummy item           |
  2 | Item 2 | Modified description |

提前致谢

左连接

使用左连接和合并()函数:

select  c.id, 
        coalesce(m.title, c.title)             as title, 
        coalesce(m.description, c.description) as description
  from checklist c 
       left join modification m on c.id=m.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Django ORM中联接两个表而第一个表中没有任何列引用第二个表

当第二个表引用第一个表中的主键时,如何将记录插入到两个表中?

如何将第二个表的两个条目作为两列,以便从第一个表中进行选择查询?

当第二个表中的布尔值为TRUE时,用第一个表覆盖第二个表的结果

连接两个表,检查第一个表中的一条记录是否与第二个表中的多条记录匹配

联接两个表,根据第二个表中的多个条件对第一个表进行计数

内部联接两个表,并为第二个表的第一个表中的每个条目返回最大值

MySQL SELECT 两个表,同时用第二个表的字段的值替换第一个表的字段的值

在表单中,选择第二个表和第一个表

2个表的SQL查询如何填充第一个到第二个表的字段

Kusto - 连接两个表并计算第一个表和第二个表中第一个表中每条记录的键

如何使用第二个 sql 的名称从第一个表中删除值

比较两个表的两个变量,并获取两个变量中单行的值在第一个表中但不在第二个表中的行

如何从第一个表和第二个表中检索所有数据

如何通过第一个表值获取第二个表值

SwiftUI:如何在关闭第一个工作表时显示第二个工作表

SQL 更新第一个表,在第二个表中使用条件变量检索

使用DOM从第二个HTML表中提取数据,忽略第一个表

Sql:使用第一个表中的日期从第二个表中查找列的总和

如何加入两个熊猫数据框,使第二个表重复

当两个表都在Laravel的同一页面上时,如何通过单击第一个表中的按钮来填充第二个html表?

Oracle:匹配第一个和第二个表的行

查询第二个表的第一个值

如何运行两个makefile目标,以便第二个使用第一个的变量?

如果第一个表中的总和大于第二个表中的总和,如何从两个表中进行选择并进行比较?

链接两个 jQuery .load() 请求会导致第二个覆盖第一个

SQL Server:使用第一个插入的输出插入第二个表

如何从第二个表中获取多个记录基于使用EF从第一个表中的记录列表

如何联接2个表并显示所有第一个表,甚至第二个表的where子句未满足?