我有两个表,一个叫做详细信息,另一个叫做c_details。除了不同的表名
之外,两个表完全相同我在这两个表中都没有数据
是否可以使用c_details
中的行更新详细信息行例如
更新详细信息SET(从c_details中选择*)?
答案 0 :(得分:3)
您必须明确描述要更新的列的列表,以及匹配两个表之间的列的键。
在PostgreSQL文档的UPDATE chapter中详细描述了从另一个表更新一个表的语法。
UPDATE
details
SET
name = c.name,
description = c.description
FROM
c_details AS c
WHERE
c.id=details.id;
答案 1 :(得分:3)
如果你需要UPDATE FROM SELECT并根据聚合函数(MIN)设置一个字段,那么SQL应该是:
UPDATE
details
SET
name = (
SELECT
MIN(c.create_at)
FROM
c_details AS c
WHERE
c.type = 4
)
WHERE
c.id = details.id;
答案 2 :(得分:1)
使用此sql查询:
INSERT INTO details SELECT * FROM c_details