【问题标题】:INSERTING a single field into a table, referenced from another table将单个字段插入到表中,从另一个表中引用
【发布时间】:2017-03-21 04:00:28
【问题描述】:

我需要在引用另一个表中的 id 字段的 a 中插入一个字段。 id 字段位于“test”字段(列 - 代码描述,表类型类别)旁边,并且来自“评估”一词旁边的 id 字段(列类别描述,表类型类别)

INSERT INTO codetype
(typecategoryid)
Where codedescription='test'
SELECT id FROM typecategory WHERE categorydescription='Assessment Types'

有很多插入整列的例子,但没有人写过如何从另一个表中插入单个字段。

表格 - 代码类型 id bigserial 主键 代码描述 varchar
typecategoryid bigint 外键到 ID 列上的类型分类

表格 - 类型类别 ID大序列主键 类别描述 varchar

【问题讨论】:

  • 您使用的是哪个 RDBMS?运行此脚本时会发生什么?您是否遇到错误,或者只是没有得到您期望的结果?
  • 为了清楚起见,您正在尝试在填充 typecategoryid 字段的同时创建它?
  • 我正在使用 postgres。有一个包含大量信息的列 typecategoryid。我需要使用来自不同表(类型类别)的 id 字段填充最后三个字段
  • 请发布表格结构,以便我们更好地帮助您。
  • 对不起,我添加了上面的表结构。

标签: sql postgresql


【解决方案1】:

如果该列已经存在并且表的其余列中已经存在记录,那么您需要一个UPDATE 语句,而不是INSERT

看来这篇文章可能会对您有所帮助:Update a column of a table with a column of another table in PostgreSQL

也许

UPDATE codetype c
SET    c.typecategoryid = t.id 
FROM   typecategory t
WHERE  c.codedescription = 'test' and t.categorydescription='Assessment Types'

【讨论】:

  • 更新代码类型 (typecategoryid) WHERE codedescription='Test' SET typecategor.id = codetype.typecategoryid WHERE typecategoryid=4 ???
  • 感谢您的帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 2015-10-09
  • 2014-07-29
  • 2020-09-28
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多