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

时间:2016-11-10 21:40:58

标签: sql-server

我有一个SQL语句我正在执行以返回数据,该语句连接其他几个表,因此对于返回的记录,我可以显示字段的名称,而不是ID。

以下是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,查询似乎没有返回任何记录,即使表中有记录。

我已尝试在记录填写了列并显示记录时执行。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

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

INNER JOIN更改为LEFT JOIN