INNER JOIN不同的ID

use*_*432 7 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
Run Code Online (Sandbox Code Playgroud)

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

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

Chu*_*ebs 17

INNER JOIN (SELECT DISTINCT * FROM X) Alias
ON Alias.ID = Primary.ID
Run Code Online (Sandbox Code Playgroud)

对于你的例子:

INNER JOIN (SELECT DISTINCT VMSUnitID, OrderId FROM tblOrderUnits) ou
ON o.id = ou.OrderId
Run Code Online (Sandbox Code Playgroud)