[英]SQL Subquery, Invalid Column Name
TSQL Says : Invalid Column Name 'VehicleId' TSQL说:无效的列名'VehicleId'
SELECT
(SELECT dbo.Vehicles.Id FROM dbo.Vehicles JOIN dbo.Movements
ON dbo.Vehicles.Id=dbo.Movements.VehicleId
WHERE dbo.Movements.Id=dbo.Alarms.MovementId) As VehicleId
FROM [dbo].[Alarms]
WHERE
VehicleId =1
What is the problem ? 问题是什么 ?
The table Alarms
does not have a column named VehicleId
表“ Alarms
”没有名为VehicleId
的列
The where clause does not use the alias where子句不使用别名
SELECT
(SELECT dbo.Vehicles.Id FROM dbo.Vehicles JOIN dbo.Movements
ON dbo.Vehicles.Id=dbo.Movements.VehicleId
WHERE dbo.Movements.Id=dbo.Alarms.MovementId) As VehicleId
FROM [dbo].[Alarms]
WHERE
VehicleId = 1 -- this is wrong
Rather than using a correlated subquery try multiple joins 与其使用相关子查询,不如尝试多个联接
SELECT dbo.Vehicles.Id
FROM dbo.Vehicles
JOIN dbo.Movements
ON dbo.Vehicles.Id = dbo.Movements.VehicleId
JOIN dbo.Alarms
ON dbo.Alarms.MovementId = dbo.Movement.Id
WHERE dbo.Movements.VehicleId = 1
Try this 尝试这个
SELECT Alarms.*
from
(SELECT dbo.Vehicles.Id FROM dbo.Vehicles JOIN dbo.Movements
ON dbo.Vehicles.Id=dbo.Movements.VehicleId
WHERE dbo.Movements.Id=dbo.Alarms.MovementId) As VehicleId
join [dbo].[Alarms]
on VehicleId.ID = Alarms.vehicleID
WHERE
VehicleId =1
I think, you are looking for something like this: 我认为,您正在寻找这样的东西:
SELECT Alarms.*
FROM dbo.Vehicles JOIN
dbo.Movements ON dbo.Vehicles.Id=dbo.Movements.VehicleId JOIN
dbo.Alarms ON dbo.Movements.Id=dbo.Alarms.MovementId
WHERE VehicleId =1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.