2010-07-16 10 views
5

Ho il seguente codice: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 

Quando mi unisco l'UO ottengo 2 della stessa unità Id. Questo fa sì che Inner Join tblOrderServiceUnits restituisca 4 righe con 2 duplicati. Ho bisogno di restituire solo le 2 righe differenti. Come uso un distinto per Inner Join solo ou.id distinto?

Ci scusiamo per la cattiva spiegazione, ma fondamentalmente sto cercando di vedere come un INNER JOIN con una subquery distinta funzionerebbe, Se qualcuno potesse darmi un esempio di ciò, potrei capirlo da lì.

risposta

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

Per esempio:

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

Quindi, se ho bisogno di selezionare distinti VMSUnitID nel OrderUnit unirsi come vorrei farlo? – user380432

+0

Post aggiornato per chiarimenti. –