2013-06-28 83 views
1

我試圖建立一個查詢,從幾個不同的表(使用JOINs)拉數據,我只是有一些問題。多JOIN和比較的SQL查詢

這裏是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是所謂的「製作」的另一個表內和表結構是這樣的...

[MakeID] [MakeName] 
1   Suzuki 
2   Porsche 

我想我只是做另一個INNER JOIN是這樣的...

INNER JOIN Make ON BaseVehicle.MakeID=Make.MakeID 

那沒沒有工作,所以我希望有人能幫助我。

+1

你是什麼意思,沒有工作,輸出是什麼 – Gratzy

+0

謝謝你糾正我的格式,湯姆! :) –

+0

Gratzy - 其實你讓我睜開眼睛,重新思考我的邏輯(我想我很累)。我不知道我在做什麼,但它現在起作用了! –

回答

2

您的解決方案應該可以工作。

INNER JOIN將不會選擇任何行,除非存在BOTH表的行。

我相信你的問題是來自Make表和BaseVehicle表的ID不匹配。

嘗試運行左連接以查看哪些行顯示爲空。