首页 > 解决方案 > 使用另一个表中的单个列的值更新特定列

问题描述

我想使用 sql 查询使用另一个表中的单个列的值更新特定列。

我要更新的特定列在WorkingTime表中。例如,我想根据其IDNoDate表 2将其值更新 1

WorkingTime桌子:

 IDNo   | PeriodDate | SPLP | NVLP | NBLP | PLP | BLP | MLP | SLP | VLP | NSLP |
18-031  |06/11/2017  |  0   |  0   |  0   |  0  |  0  |  0  |  0  |  0  |  0   |
18-032  |06/12/2017  |  0   |  0   |  0   |  0  |  0  |  0  |  0  |  0  |  0   |
18-033  |06/13/2017  |  0   |  0   |  0   |  0  |  0  |  0  |  0  |  0  |  0   |

我要更新的列的名称WorkingTimeLeaveDetails. 名称为 的列LeaveType

LeaveDetails

Contro  | IDNo   | LeaveType| DateFrom | DateTo   | NoOfDays |
000041  |18-031  |  SPLP    |06/11/2019|06/11/2019|  1       |
000042  |18-032  |  NVLP    |06/12/2019|06/12/2019|  1       |
000043  |18-033  |  PLP     |06/13/2019|06/13/2019|  1       |

查询后我的预期结果是这样的

预期结果:

 IDNo   | PeriodDate | SPLP | NVLP | NBLP | PLP | BLP | MLP | SLP | VLP | NSLP |
18-031  |06/11/2017  |  1   |  0   |  0   |  0  |  0  |  0  |  0  |  0  |  0   |
18-032  |06/12/2017  |  0   |  1   |  0   |  0  |  0  |  0  |  0  |  0  |  0   |
18-018  |06/13/2017  |  0   |  0   |  0   |  1  |  0  |  0  |  0  |  0  |  0   |

谁能帮我解决我将用来实现这一点的查询。先感谢您。

标签: sql

解决方案


我不清楚您要更新哪些表/列,但您可以使用子查询使用不同表的列值更新一个表中的列值,例如:

UPDATE TABLE_1
SET LEAVETYPE = 
(SELECT NEW_COLUMN FROM TABLE_2 WHERE PRIMARY_KEY = 'Something')
WHERE PRIMARY_KEY = 'Something'
;

推荐阅读