2010-07-16 26 views
5

Aşağıdaki kod var: Ben ou katıldığınızdaİÇ Farklı numarası JOIN

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 

Aynı birimin Kimliği en 2 olsun. Bu Inner Join yap tblOrderServiceUnits 2 yinelenen olmak üzere 4 satır döndürür. Sadece 2 satırı geri döndürmek için ihtiyacım var. Inner Join'a sadece ayrı bir ou.id için ayrı bir yeri nasıl kullanırım?

Kötü bir açıklama için özür dilerim ama temel olarak farklı bir alt sorgusu olan bir INNER JOIN'in nasıl çalışacağını anlamaya çalışmak için jsut'um, Birisi bana bunun bir örneğini verebilirse, oradan anlayabilseydim. senin Örneğin

cevap

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

Yani bunu nasıl ben OrderUnit içinde ayrı VMSUnitID seçmek için katılmak gerekiyorsa? – user380432

+0

Açıklama için açıklama sonrası. –