2014-06-15 197 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