我有三张桌子
我有以下查询
SELECT dbo.tblVegetationType.VegTypeCode,
dbo.tblVegetationType.VegTypeName,dbo.tblVegetationClass.VegetationClassID,
dbo.tblVegTypeVegFormationLink.VegetationFormationID
FROM dbo.tblVegetationType
INNER JOIN dbo.tblVegTypeVegFormationLink
ON dbo.tblVegetationType.VegTypeID = dbo.tblVegTypeVegFormationLink.VegTypeID
INNER JOIN dbo.tblVegetationClass
ON dbo.tblVegetationType.VegetationClassID=dbo.tblVegetationClass.VegetationClassID
INNER JOIN tblCMAVegTypeLink
ON dbo.tblVegetationType.VegTypeID = dbo.tblCMAVegTypeLink.VegTypeID
WHERE dbo.tblVegetationType.PercentageCleared >= 50
AND dbo.tblVegTypeVegFormationLink.VegetationFormationID = 313
AND dbo.tblCMAVegTypeLink.CMAID = 4
AND (dbo.tblVegetationType.EffectiveDateTo IS NULL)
查询返回
VegTypeCode VegTypeName VegetationClassID VegetationFormationID
HU532 Coastal 40 313
HU591 Paperbark 39 313
HU633 Swamp 39 313
HU635 Swamp 40 313
我希望查询只返回记录2和3或1和4。
内部联接不匹配 tblVegetationType.VegetationClassID = tblVegetetationClass.VegetationClassID
你能否在我的查询中纠正我的错误?
答案 0 :(得分:2)
您的WHERE子句不以任何方式约束tblVegetationClass
,因此它将允许所有此类记录通过。如果你要添加
AND dbo.tblVegetationClass.ID = 1
(或沿着这些行的东西)你将限制查询返回的植被类。