ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отличительный ID - PullRequest
7 голосов
/ 16 июля 2010

У меня есть следующий код:

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

Когда я присоединяюсь к ОУ, я получаю 2 одинаковых идентификатора единицы.Это позволяет внутреннему соединению tblOrderServiceUnits возвращать 4 строки, причем 2 являются дубликатами.Мне нужно, чтобы вернуть только 2 строки разные.Как использовать отдельное для внутреннего соединения только отличное ou.id?

Извините за плохое объяснение, но в основном я просто пытаюсь понять, как будет работать ВНУТРЕННЕЕ СОЕДИНЕНИЕ с отдельным подзапросом, если кто-то может дать мнепример того, что я мог бы понять это оттуда.

1 Ответ

17 голосов
/ 16 июля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...