我有以下代码:
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如何工作,如果有人能给我一个例子,我可以从那里弄明白。
答案 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