sql - 使用 UPDATE FROM 批量设置字段

标签 sql t-sql sql-update

我有以下查询,用于提取车辆 ID、注册信息、驾驶员 ID 和驾驶员姓名。您看到此查询中引用的 _core_people 表也是我希望设置为车牌的字段。

这是查询:

SELECT fv._plate, cp._people_name
FROM
_fleet_vehicle fv,
_fleet_vehicle_status fvs,
_core_people cp,
_fleet_allocation fa
WHERE 
cp._id_hierarchy = fv._id_hierarchy
AND fv._id_status = fvs._id
AND fvs._status_live = 1
AND fa._id_person = cp._id
AND fa._id_vehicle = fv._id
AND fa._alloc_end_date IS NULL
ORDER BY cp._people_name ASC

现在,我想编写一个 UPDATE...FROM 子句,利用此子句将 _core_people._plate (此处未显示)设置为其车辆的车牌字段.

但是,我不确定如何构建 UPDATE...FROM 子句。

此外,一些司机有两辆车。还能用吗?

提前致谢!

最佳答案

UPDATE  _core_people
SET     _plate = fv._plate
FROM    _fleet_vehicle fv,
        _fleet_vehicle_status fvs,
        _core_people cp,
        _fleet_allocation fa
WHERE   cp._id_hierarchy = fv._id_hierarchy
        AND fv._id_status = fvs._id
        AND fvs._status_live = 1
        AND fa._id_person = cp._id
        AND fa._id_vehicle = fv._id
        AND fa._alloc_end_date IS NULL

如果 _core_people 符合条件的记录超过 1 条,_core_people 将仅更新为其中一条(无法准确判断是哪一条) .

关于sql - 使用 UPDATE FROM 批量设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471189/

相关文章:

sql - 存储过程不返回任何内容

mysql - 我可以允许用户仅使用他的数据更改表吗?

mysql - 如果其他表没有,则列出电子邮件

php - PDOstatement有问题,其中不包含应包含的内容

mysql - 将电子邮件 VARCHAR(320) 存储为 UNIQUE,#1071 - 指定的键太长;最大 key 长度为 767

mysql - 从sql查询中的特定纬度和经度查找所有最近的带有纬度和经度的邮政编码

sql-server - SQL 复杂选择 - 形成查询时遇到问题

json - 将多行中的 JSON 对象合并为单个对象

mysql - 选择要更新的查询

java - 更新sql java 不起作用