INNER JOIN不同的ID

时间:2010-07-16 15:09:54

标签: sql

我有以下代码:

FROM CTE_Order cte
    INNER JOIN tblOrders o
       ON cte.OrderId = o.Id
    INNER JOIN tblOrderUnits ou
       ON o.id = ou.OrderId                        
    INNER JOIN tblOrderServiceUnits osu
       ON ou.VMSUnitID = osu.UnitId

当我加入ou时,我得到2个相同的单位Id。这使得Inner Join tblOrderServiceUnits返回4行,其中2为重复。我需要它只返回不同的2行。如何使用不同的内部连接仅使用不同的ou.id?

很抱歉这个错误的解释,但基本上我是jsut试图看看一个带有不同子查询的INNER JOIN如何工作,如果有人能给我一个例子,我可以从那里弄明白。

1 个答案:

答案 0 :(得分:17)

INNER JOIN (SELECT DISTINCT * FROM X) Alias
ON Alias.ID = Primary.ID

对于你的例子:

INNER JOIN (SELECT DISTINCT VMSUnitID, OrderId FROM tblOrderUnits) ou
ON o.id = ou.OrderId