如何删除SQL中返回的相关数据上的重复行?
我有一个将许多相关表连接在一起的查询,结果是,它返回了这些项的重复行,其中包含多个数据 我已经在stack和google上搜索了这个问题的答案,但所有的结果都显示了使用“DISTINCT”或创建子查询之类的东西。我找不到工作的任何解决方案,我认为我面临的困惑是因为我有很多人加入 有人能指导我如何停止重复显示结果吗?这是我目前的疑问如何删除SQL中返回的相关数据上的重复行?,sql,sql-server,join,Sql,Sql Server,Join,我有一个将许多相关表连接在一起的查询,结果是,它返回了这些项的重复行,其中包含多个数据 我已经在stack和google上搜索了这个问题的答案,但所有的结果都显示了使用“DISTINCT”或创建子查询之类的东西。我找不到工作的任何解决方案,我认为我面临的困惑是因为我有很多人加入 有人能指导我如何停止重复显示结果吗?这是我目前的疑问 SELECT dbo.Vessel.VesselId, dbo.Vessel.Name, dbo.Capacity.DeckAreaM
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
首先,您的查询是否有效?没有所谓的左内联接;您可能有一个
内部联接
、一个左联接
、或一个左外部联接
,后两者相同
其次,我可以理解您不愿意进行额外的子查询,但是为什么您反对DISTINCT
操作符
第三,如果使用分组依据
并仅将所需字段放在那里,则它将等效于DISTINCT
运算符,并将返回所需的结果
最后但并非最不重要的一点是,如果我们想为您提供更多帮助,您需要向我们展示您得到了什么以及您想要什么。无法帮助您。给我们一个例子,重复的行没有被DISTINCT和你尝试过的其他方法删除。左内连接???此外,您还应该学习如何使用别名。3列列表中的零件命名已被弃用。