SQL:SELECT语句返回所有记录,JOIN值为NULL,查询返回没有记录

问题描述:

我有一条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

当您使用INNER JOIN时,连接字段(如DepartmentID)必须在两个表中都有有效的记录。如果你想从主表中返回记录,无论它们是否在你的连接表中,你必须使用LEFT JOIN

变化INNER JOIN变为LEFT JOIN

+0

干杯人!非常感谢,因为你可能会说,我对SQL很陌生。 – TheTechnicalPaladin