【发布时间】:2017-07-20 17:35:07
【问题描述】:
我有两个表:samples_specific_storage sss 和 samples s,它们都有 4 列 area_easting、area_northing、context_number、sample_number 的主键
表格存储有箱号,例如框F52,我先选择所有框= F52
SELECT sss.area_easting, sss.area_northing, sss.context_number,
sss.sample_number
FROM samples.samples_specific_storage sss
WHERE sss.container_name = 'F19'
我想使用此选择来更新样本表中具有相应 area_easting、area_northing、context_number、样本编号的记录。我试图理解嵌套查询,因为我认为这是我需要的: UPDATE SET FROM WHERE (SELECT...) 我知道以下内容是错误的,但大致如下:
UPDATE samples.samples_specific_storage
SET current_location = 'testing'
WHERE (
SELECT s.area_easting,s.area_northing,s.context_number,s.sample_number FROM samples.samples s WHERE current_location = 'F19')
虚拟数据:
sss
area_easting,area_northing,context_number,sample_numbers,box_number
99,45,1,1,F52
99,44,2,1,F52
99,44,2,2,F52
99,44,5,1,F52
...
样本
area_easting,area_northing,context_number,sample_numbers,shelf_number
99,45,1,1,货架1
99,44,2,1,shelf1
99,44,2,2,shelf1
99,44,5,1,shelf1
...
所以我想将架子 1 更新到架子 2,其中 box_number=F52 [我知道表的结构很糟糕 - 我继承了它,它将被修复]
【问题讨论】:
-
添加一些示例表数据和预期结果 - 作为格式化文本。还请告诉我们您正在使用哪些 dbms。
-
dbms 很重要 bcz 更新的语法可以不同
-
您能否添加创建这两个表的架构语句。这使得评估变得容易
标签: sql postgresql