2016-11-10 194 views
0

我有一條SQL語句正在執行以返回數據,語句連接了其他幾個表,因此對於返回的記錄,我可以顯示字段的名稱,而不是ID。SQL:SELECT語句返回所有記錄,JOIN值爲NULL,查詢返回沒有記錄

這裏是SQL的一部分:

SELECT 
    HardwareAsset.HardwareAssetTitle, 
    HardwareAsset.HardwareAssetAssetTag, 
    Department.DepartmentTitle AS HardwareAssetDepartmentTitle, 
    CostCentre.DepartmentTitle AS HardwareAssetCostCentreTitle, 
FROM 
    HardwareAsset 
INNER JOIN 
    Department Department ON (Department.DepartmentID = HardwareAsset.HardwareAssetDepartmentID) 
INNER JOIN 
    Department CostCentre ON (CostCentre.DepartmentID = HardwareAsset.HardwareAssetCostCentreID) 

我的問題是,即使查詢成功執行,因爲某些列(即上面提到的那些)具有NULL值,查詢似乎即使表格中有記錄,也不會返回任何記錄。

我試過執行時,記錄有列填寫和記錄顯示。有任何想法嗎?

+2

嘗試使用'LEFT JOIN'而不是'INNER JOIN',並且即使在第二個表中沒有匹配時它也應該返回記錄。 – beercodebeer

回答

5

當您使用INNER JOIN時,連接字段(如DepartmentID)必須在兩個表中都有有效的記錄。如果你想從主表中返回記錄,無論它們是否在你的連接表中,你必須使用LEFT JOIN

變化INNER JOIN變爲LEFT JOIN

+0

乾杯人!非常感謝,因爲你可能會說,我對SQL很陌生。 – TheTechnicalPaladin