Member 13806552 Ответов: 1

Соединение таблицы с условным предложением where


Здравствуйте я создал запрос который дает мне ровно 29 записей

 select u.Name,u.UserDescription, u.UserEmail, g.GroupDescription
 from [GroupMembers] gm
 inner join [Users] u
 on gm.GroupMemberObjectID = u.UserID
 inner join[Groups] g
 on g.GroupID = gm.GroupID
 where gm.GroupID = 43
 and gm.GroupMemberObjectType = 205
order by u.UserDescription




То, что я хотел бы сделать, - это присоединиться к моей таблице приложений к вышеприведенному запросу, но только с условием, где gm.GroupMemberObjectType-это 201.



select a.AppDescription
  from [GroupMembers] gm
  inner join [Apps] a
  on a.AppID = gm.GroupMemberObjectID
  where gm.GroupMemberObjectType = 201
  and gm.GroupID = 43



Так что мой окончательный выбор должен выглядеть так
select u.Name,u.UserDescription, u.UserEmail, g.GroupDescription, a.AppDescription


Что я уже пробовал:

Когда я попытался встроить свою таблицу приложений в исходные результаты запроса, это стало неправильным, потому что идентификатор приложения теперь соединяется там, где объект равен 205, а не 201.

MadMyche

Ваши два утверждения имеют противоречащие друг другу положения where; одно из них-gm.GroupMemberObjectType = 201, а другой-gm.GroupMemberObjectType = 205.

Member 13806552

Да, таблица приложений может быть присоединена только к тому, что включает в себя предложение where gm.GroupMemberObjectType-это 201. Вот что вызывает мою проблему.

1 Ответов

Рейтинг:
2

Maciej Los

Прежде всего, я настоятельно рекомендую прочитать эту замечательную статью: Визуальное представление SQL-соединений[^]

Вероятно, вам нужно использовать другой тип соединения.