sql - 使用另一个表中的单个列的值更新特定列
问题描述
我想使用 sql 查询使用另一个表中的单个列的值更新特定列。
我要更新的特定列在WorkingTime
表中。例如,我想根据其IDNo
和Date
表 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 |
我要更新的列的名称WorkingTime
在LeaveDetails
. 名称为 的列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 |
谁能帮我解决我将用来实现这一点的查询。先感谢您。
解决方案
我不清楚您要更新哪些表/列,但您可以使用子查询使用不同表的列值更新一个表中的列值,例如:
UPDATE TABLE_1
SET LEAVETYPE =
(SELECT NEW_COLUMN FROM TABLE_2 WHERE PRIMARY_KEY = 'Something')
WHERE PRIMARY_KEY = 'Something'
;
推荐阅读
- webrtc - FreeSwitch + Mode Verto + Webrtc + Android + unable to make call from android
- oop - 如何在结构化文本的功能块中对成员变量使用访问说明符?(倍福,TwinCAT)
- asp.net-core - 在 AutoFac ConfigureTenant 中添加身份验证
- python - Intercepting and accessing intermediate Json's hit response in python playwright
- java - 无法在内部存储中创建文件夹
- python - Cannot to write a log in logfile in crontab using logging
- javascript - Load html pages with css styles from jquery
- r - R 用于葡萄糖分析的 iglu 包中的 MAGE 函数中的 replace() 错误
- flutter - ReorderableListView.builder is not reorder
- swift - 在数组中查找项目并更新其值