我有一个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,查询似乎没有返回任何记录,即使表中有记录。
我已尝试在记录填写了列并显示记录时执行。有什么想法吗?
答案 0 :(得分:5)
使用INNER JOIN
连接字段时,如DepartmentID
,必须在两个表中都有一个有效记录。如果您想要从主表中返回记录,无论它们是否在您的联接表中,您都必须使用LEFT JOIN
。
将INNER JOIN
更改为LEFT JOIN
。