对2个表进行SQL查询验证
我正在尝试运行查询以从下表中获取以下结果 基本车辆表 车辆表 结果表 如果记录处于活动状态,则DeleteDate在此为空 基本车辆一->车辆多之间存在一对多映射 我需要查询以获取基本车辆ID未映射到车辆表的记录,以及与基本车辆关联的所有车辆(其中DeleteDate不为null)的记录。请让我知道我如何做到这一点 我只需要获取所有相关车辆Id的基本车辆Id的deleteDate不为空,就像车辆表中的BaseVehicleId=2一样,我不应该读取结果集中BaseVehicleId=3的值对2个表进行SQL查询验证,sql,sql-server,Sql,Sql Server,我正在尝试运行查询以从下表中获取以下结果 基本车辆表 车辆表 结果表 如果记录处于活动状态,则DeleteDate在此为空 基本车辆一->车辆多之间存在一对多映射 我需要查询以获取基本车辆ID未映射到车辆表的记录,以及与基本车辆关联的所有车辆(其中DeleteDate不为null)的记录。请让我知道我如何做到这一点 我只需要获取所有相关车辆Id的基本车辆Id的deleteDate不为空,就像车辆表中的BaseVehicleId=2一样,我不应该读取结果集中BaseVehicleId=3的值 有时
有时候你应该想相反的方式 首先,我们必须从Vehicle表中查询所有未设置DeleteDate字段的记录。我们应该排除那些与之相关的记录和基本车辆。这意味着我们将只获得车辆表中不存在的BaseVehicleId,或者这些ID的所有记录都设置了DeleteDate
因此,您希望将未映射的BaseVehicles的BaseVehicles ID映射到Vechicle表,并在Vehicle表中使用Delete Date not null的映射BaseVehicleID???@Sujith是的,感谢您的回复是的+1.我误解了问题的一部分。谢谢你,波沃:它工作得很好
BaseVehicleId DeleteDate
1 NULL
2 NULL
3 NULL
4 NULL
VehicleId BaseVehicleId DeleteDate
1 1 NULL
2 1 NULL
3 2 08-01-2017
4 3 NULL
5 3 08-01-2017
6 3 NULL
7 1 NULL
8 2 08-01-2017
BaseVehicleId
2
4
SELECT BaseVehicleId
FROM BaseVehicle
WHERE BaseVehicleId NOT IN (SELECT BaseVehicleId FROM Vehicle WHERE DeleteDate IS NULL)