1

我正在尝试构建一个从几个不同的表(使用 JOIN)中提取数据的查询,但我遇到了一些问题。

这是 SQL 查询...

SELECT Import_Values.id, 
       Import_Values.base_vehicle_id, 
       Import_Values.part_type_id, 
       Import_Values.position, 
       Import_Values.part_id, 
       Import_Values.part_number, 
       Import_Values.brand_id, 
       Import_Values.brand_description, 
       Import_Values.series_id, 
       Import_Values.worldpac_category_id, 
       Import_Values.price, 
       Import_Values.list_price, 
       Import_Values.core, 
       Import_Values.available, 
       Import_Values.weight, 
       Import_Values.height, 
       Import_Values.length, 
       Import_Values.width, 
       Import_Values.selling_increment, 
       Import_Values.popularity, 
       Import_Values.qty, 
       Import_Values.description_line_two, 
       Import_Values.detailed_description, 
       Import_Values.image_url, 
       Import_Values.thumb_url, 
       Import_Values.note, 
       BaseVehicle.YearID, 
       BaseVehicle.MakeID, 
       BaseVehicle.ModelID, 
       Make.MakeName
FROM 
    Import_Values
        INNER JOIN BaseVehicle 
            ON Import_Values.base_vehicle_id=BaseVehicle.BaseVehicleID

从“BaseVehicle”表中获取 MakeID 后,我想获取分配给 ID 但不在同一个表中的“MakeName”。MakeName 在另一个名为“Make”的表中,表结构是这样的......

[MakeID]  [MakeName]
1         Suzuki
2         Porsche

我以为我会像这样再做一次 INNER JOIN ......

INNER JOIN Make ON BaseVehicle.MakeID=Make.MakeID

那没有用,所以我希望有人可以帮助我。

4

1 回答 1

2

您的解决方案应该有效。

除非 BOTH 表中的行存在,否则 INNER JOIN 不会选择任何行。

我相信您的问题是 Make 表和 BaseVehicle 表中的 ID 不匹配。

尝试运行左连接以查看哪些行显示为空。

于 2013-06-28T16:09:44.130 回答