2010-07-16 19 views
5

Tengo el siguiente código:INNER JOIN Distinto 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 

Cuando me uno al ou me sale 2 de la misma unidad de identificación. Esto hace que el Inner Join tblOrderServiceUnits devuelva 4 filas con 2 duplicados. Lo necesito solo para devolver las 2 filas que son diferentes. ¿Cómo utilizo un identificador único a Inner join only distinct.id?

Disculpe la mala explicación, pero básicamente estoy tratando de ver cómo funcionaría una UNIÓN INTERNA con una subconsulta distinta. Si alguien pudiera darme un ejemplo de eso, podría resolverlo desde allí.

Respuesta

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

Para su ejemplo:

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

Así que si tengo que seleccionar distintos VMSUnitID en el OrderUnit unirse a cómo iba a hacer eso? – user380432

+0

Publicación actualizada para aclaración. –