2010-07-16 72 views
5

我有以下代码:INNER JOIN鲜明ID

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 

当我加入了欧我同一单位标识的获取2。这使得Inner Join tblOrderServiceUnits返回4行,其中2是重复的。我需要它只返回2行是不同的。我如何使用独特的内部加入不同的ou.id?

对不起,我不好解释,但基本上我仅仅指刚想看看一个INNER具有鲜明的子查询该如何加入会的工作,如果有人可以给我,我可以算出它从那里出来的一个例子。

回答

12
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 
+0

所以,如果我需要在OrderUnit选择不同VMSUnitID联接我会怎么做呢? – user380432 2010-07-16 15:30:40

+0

更新后发布澄清。 – 2010-07-16 16:11:39