2013-07-22 26 views
0

我有一個相當大的數據庫表,最初是一個ACCESS文檔。它包含用於裝配自動零件的每個屬性的不同表格。正如人們可以想象的那樣,配件數據包含很多規格,因此一切都很分散。如何使用INNER JOIN優化SQL查詢

現在構建查詢以映射來自此數據庫的值變得困難。我有以下查詢,它似乎包含太多的JOIN ...並且隨着我添加更多,它似乎需要更長的時間才能運行。有沒有更好的方法來解決這個問題?

SELECT Import_Values.base_vehicle_id, 
    Import_Values.qty, 
    Import_Values.part_type_id, 
    Import_Values.part_id, 
    Import_Values.position_id, 
    Import_Values.note, 
    Parts.partterminologyname, 
    BaseVehicle.YearID, 
    Make.MakeName, 
    Model.modelname, 
    SubModel.SubModelName, 
    EngineDesignation.EngineDesignationName, 
    EngineVIN.EngineVINName, 
    EngineBase.Liter, 
    EngineBase.CC, 
    EngineBase.CID, 
    EngineBase.Cylinders, 
    EngineBase.BlockType, 
    EngineBase.EngBoreIn, 
    EngineBase.EngBoreMetric, 
    EngineBase.EngStrokeIn, 
    EngineBase.EngStrokeMetric, 
    FuelDeliveryType.FuelDeliveryTypeName, 
    FuelDeliverySubType.FuelDeliverySubTypeName, 
    FuelSystemControlType.FuelSystemControlTypeName, 
    FuelSystemDesign.FuelSystemDesignName, 
    Aspiration.AspirationName, 
    CylinderHeadType.CylinderHeadTypeName, 
    FuelType.FuelTypeName, 
    IgnitionSystemType.IgnitionSystemTypeName, 
    Mfr.MfrName, 
    EngineVersion.EngineVersion, 
    Valves.ValvesPerEngine, 
    BedLength.BedLength, 
    BedLength.BedLengthMetric, 
    BedType.BedTypeName 
    FROM 
    Import_Values 
    INNER JOIN BaseVehicle 
     ON Import_Values.base_vehicle_id=BaseVehicle.BaseVehicleID 
    INNER JOIN Parts 
     ON Import_Values.part_type_id=Parts.PartTerminologyID 
    INNER JOIN Make 
     ON BaseVehicle.MakeID=Make.MakeID 
    INNER JOIN Model 
     ON BaseVehicle.ModelID=Model.ModelID 
    INNER JOIN Vehicle 
     ON Import_Values.base_vehicle_id=Vehicle.BaseVehicleID 
    INNER JOIN SubModel 
     ON Vehicle.SubModelID=SubModel.SubModelID 
    INNER JOIN VehicleToEngineConfig 
     ON Vehicle.VehicleID=VehicleToEngineConfig.VehicleID 
    INNER JOIN EngineConfig 
     ON VehicleToEngineConfig.EngineConfigID=EngineConfig.EngineConfigID 
    INNER JOIN EngineDesignation 
     ON EngineConfig.EngineDesignationID=EngineDesignation.EngineDesignationID 
    INNER JOIN EngineVIN 
     ON EngineConfig.EngineVINID=EngineVIN.EngineVINID 
    INNER JOIN EngineBase 
     ON EngineConfig.EngineBaseID=EngineBase.EngineBaseID 
    INNER JOIN FuelDeliveryConfig 
     ON EngineConfig.FuelDeliveryConfigID=FuelDeliveryConfig.FuelDeliveryConfigID 
    INNER JOIN FuelDeliveryType 
     ON FuelDeliveryConfig.FuelDeliveryTypeID=FuelDeliveryType.FuelDeliveryTypeID 
    INNER JOIN FuelDeliverySubType 
     ON FuelDeliveryConfig.FuelDeliverySubTypeID=FuelDeliverySubType.FuelDeliverySubTypeID 
    INNER JOIN FuelSystemControlType 
     ON FuelDeliveryConfig.FuelSystemControlTypeID=FuelSystemControlType.FuelSystemControlTypeID 
    INNER JOIN FuelSystemDesign 
     ON FuelDeliveryConfig.FuelSystemDesignID=FuelSystemDesign.FuelSystemDesignID 
    INNER JOIN Aspiration 
     ON EngineConfig.AspirationID=Aspiration.AspirationID 
    INNER JOIN CylinderHeadType 
     ON EngineConfig.CylinderHeadTypeID=CylinderHeadType.CylinderHeadTypeID 
    INNER JOIN FuelType 
     ON EngineConfig.FuelTypeID=FuelType.FuelTypeID 
    INNER JOIN IgnitionSystemType 
     ON EngineConfig.IgnitionSystemTypeID=IgnitionSystemType.IgnitionSystemTypeID 
    INNER JOIN Mfr 
     ON EngineConfig.EngineMfrID=Mfr.MfrID 
    INNER JOIN EngineVersion 
     ON EngineConfig.EngineVersionID=EngineVersion.EngineVersionID 
    INNER JOIN Valves 
     ON EngineConfig.ValvesID=Valves.Valvesid 
    INNER JOIN VehicleToBedConfig 
     ON Vehicle.VehicleID=VehicleToBedConfig.VehicleID 
    INNER JOIN BedConfig 
     ON VehicleToBedConfig.BedConfigID=BedConfig.BedConfigID 
    INNER JOIN BedLength 
     ON BedConfig.BedLengthID=BedLength.BedLengthID 
    INNER JOIN BedType 
     ON BedConfig.BedTypeID=BedType.BedTypeID 

任何意見是讚賞!

回答