Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除SQL中返回的相关数据上的重复行?_Sql_Sql Server_Join - Fatal编程技术网

如何删除SQL中返回的相关数据上的重复行?

如何删除SQL中返回的相关数据上的重复行?,sql,sql-server,join,Sql,Sql Server,Join,我有一个将许多相关表连接在一起的查询,结果是,它返回了这些项的重复行,其中包含多个数据 我已经在stack和google上搜索了这个问题的答案,但所有的结果都显示了使用“DISTINCT”或创建子查询之类的东西。我找不到工作的任何解决方案,我认为我面临的困惑是因为我有很多人加入 有人能指导我如何停止重复显示结果吗?这是我目前的疑问 SELECT dbo.Vessel.VesselId, dbo.Vessel.Name, dbo.Capacity.DeckAreaM

我有一个将许多相关表连接在一起的查询,结果是,它返回了这些项的重复行,其中包含多个数据

我已经在stack和google上搜索了这个问题的答案,但所有的结果都显示了使用“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

首先,您的查询是否有效?没有所谓的左内联接;您可能有一个
内部联接
、一个
左联接
、或一个
左外部联接
,后两者相同

其次,我可以理解您不愿意进行额外的子查询,但是为什么您反对
DISTINCT
操作符

第三,如果使用
分组依据
并仅将所需字段放在那里,则它将等效于
DISTINCT
运算符,并将返回所需的结果


最后但并非最不重要的一点是,如果我们想为您提供更多帮助,您需要向我们展示您得到了什么以及您想要什么。

无法帮助您。给我们一个例子,重复的行没有被DISTINCT和你尝试过的其他方法删除。左内连接???此外,您还应该学习如何使用别名。3列列表中的零件命名已被弃用。