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值,查询似乎即使表格中有记录,也不会返回任何记录。
我试过执行时,记录有列填写和记录显示。有任何想法吗?
答
当您使用INNER JOIN
时,连接字段(如DepartmentID
)必须在两个表中都有有效的记录。如果你想从主表中返回记录,无论它们是否在你的连接表中,你必须使用LEFT JOIN
。
变化INNER JOIN
变为LEFT JOIN
。
+0
干杯人!非常感谢,因为你可能会说,我对SQL很陌生。 – TheTechnicalPaladin
尝试使用'LEFT JOIN'而不是'INNER JOIN',并且即使在第二个表中没有匹配时它也应该返回记录。 – beercodebeer