我想要执行的查询是: 可以使用多少车辆来装运x?|
任何想法? 我有:
select count(VehicleType) from Vehicle where in
(select VEHICLETYPE, SHIPMENT_TYPE from can_carry
where SHIPMENT_TYPE in
(select SHIPMENT_TYPE from Shipment where ContractNo = x and ShipmentNo = x );
但我觉得这是错的
答案 0 :(得分:1)
你在第一个条件下没有VEHICLETYPE而且有一个缺失了。 所以这对你的有效SQL是有效的:
select count(VehicleType) from Vehicle where VEHICLETYPE in
(select VEHICLETYPE, SHIPMENT_TYPE from can_carry
where SHIPMENT_TYPE in
(select SHIPMENT_TYPE from Shipment where ContractNo = x and ShipmentNo = x))
但是这个SQL是PERFKILLER! :) 我的意思是你选择3组结果!所以这将有一个可怕的执行计划。 您可以使用JOIN编写更好的查询。有关执行计划的更多信息here。