我有一个查询,该查询将许多相关的表连接在一起,因此,对于那些具有多个数据的项目,它返回重复的行。
我已经通过堆栈和谷歌搜索了答案,但是所有结果都显示了使用“ DISTINCT”或创建子查询之类的东西。我无法获得任何解决方案,我认为我所面临的困惑是由于我拥有许多加入。
有人可以指导我如何阻止我的结果显示重复吗?到目前为止,这是我的查询。
SELECT dbo.Vessel.VesselId,
dbo.Vessel.Name,
dbo.Capacity.DeckAreaM2,
dbo.Vessel.DPClassId,
dbo.Subsea.Accomodation,
dbo.Subsea.RovHangar,
dbo.Crane.SWL
FROM dbo.Vessel INNER JOIN
dbo.Capacity ON dbo.Vessel.VesselId = dbo.Capacity.VesselId LEFT OUTER JOIN
dbo.DeckEquipment ON dbo.Vessel.VesselId = dbo.DeckEquipment.VesselId LEFT OUTER JOIN
dbo.Crane ON dbo.DeckEquipment.DeckEquipmentId = dbo.Crane.DeckEquipmentId LEFT OUTER JOIN
dbo.Subsea ON dbo.Vessel.VesselId = dbo.Subsea.VesselId
答案 0 :(得分:1)
首先,您的查询是否还有效?没有LEFT INNER JOIN
这样的东西;您可能拥有INNER JOIN
,LEFT JOIN
或LEFT OUTER JOIN
,而后两个相同。
第二,我可以理解您不愿意进行额外的子查询,但是您为什么反对DISTINCT
运算符?
第三,如果您使用GROUP BY
并仅在其中放置所需的字段,则DISTINCT
运算符将等效于该字段,并将返回所需的结果。
最后但并非最不重要的一点是,如果我们能够为您提供更多帮助,则需要向我们展示您所得到的以及您想要的。