具有多个JOIN和比较的SQL查询

时间:2013-06-28 16:01:29

标签: mysql sql

我正在尝试构建一个从几个不同的表(使用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 Make ON BaseVehicle.MakeID=Make.MakeID

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

1 个答案:

答案 0 :(得分:2)

您的解决方案应该有效。

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

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

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