【发布时间】:2017-03-10 15:33:30
【问题描述】:
如何使用 UPDATE 语句中的子查询?这是我的查询:
UPDATE car_availability
SET availability_status = 'GOOD'
FROM car_trip AS TRIP
WHERE car_availability.car_no = TRIP.car_no
AND NOT EXISTS (SELECT DISTINCT A.car_No
FROM car_maintenance A
WHERE A.car_no = TRIP.vehicle_id
AND start_date = TRIP.workday)
AND EXISTS (SELECT DISTINCT B.car_No
FROM car_maintenance B
WHERE B.car_no = TRIP.vehicle_id
AND end_date IS NOT NULL)
我收到错误消息“UPDATE 和 DELETE 语句中的 FROM 子句不能包含子查询源或连接。”
我想将availability_status 更新为 GOOD,其中 car_maintenance 中存在的汽车 start_date 等于 car_trip 的工作日,而 car_maintenance 中结束日期不为空的汽车。
【问题讨论】:
-
这是一个重复的问题,你可以在这里得到答案:stackoverflow.com/a/2334741/3270427
-
@McNets - 我也不能使用 INNER JOIN。我正在使用 SQL Server 2016。
-
仔细阅读,一定要在FROM子句中加上
car_availability
标签: mysql sql-server-2008 sql-update data-warehouse