2014-06-15 144 views
-3

我需要使用SQL Server此连接:INNER JOIN在SQL Server

select dbo.CustomPermisionCntrs.CustomPermissionQty, 
    dbo.CustomPermisionCntrs.CustomPermissionWeight, 
    dbo.v_ExitPermitCntrs.LoadingQty, 
    dbo.v_ExitPermitCntrs.LoadingWeight, 
    dbo.v_ExitPermitCntrs.ExitDateTime, 
    dbo.v_ExitPermitCntrs.ExitPermitID, 
    dbo.v_ExitPermitCntrs.ExitPermitReceiptDate, 
    dbo.ExitPermit.ExitPermitType, 
    dbo.ManifestCntrs.CntrNo, 
    dbo.v_ManifestBLs.ConsigneeName, 
    dbo.v_ManifestBLs.BLNo, 
    dbo.v_ManifestBLs.BLID 


from ((dbo.ExitPermit INNER JOIN dbo.v_ExitPermitCntrs ON dbo.ExitPermit.ExitPermitID = dbo.v_ExitPermitCntrs.ExitPermitID) 
     INNER JOIN dbo.CustomPermisionCntrs ON dbo.CustomPermisionCntrs.CustomPermissionCntrID = dbo.v_ExitPermitCntrs.CustomPermissionCntrID) 
     INNER JOIN(dbo.v_ManifestBLs INNER JOIN dbo.ManifestCntrs ON dbo.v_ManifestBLs.ManifestID = dbo.ManifestCntrs.ManifestID) 
     ON dbo.v_ManifestBLs.VoyageID = dbo.v_ExitPermitCntrs.VoyageID 

但我的结果有很多重复的数据! 我如何改变连接来解决这个问题?

+3

为什么使用2个不同的标签,Mysql和sql-server? –

回答

-1

这是因为你在其他表中有重复的记录(相同的id)。在这种情况下,右边的表格,我认为,所以你必须使用LEFT JOIN而不是INNER JOIN。

即便如此,您仍然需要重新考虑加入哪条记录,因为它们在其他表格中并不唯一!

阅读全文here