SQL Server INNER JOIN создает проблемы? - PullRequest
0 голосов
/ 10 марта 2011

Мне нужно объединить 5 таблиц с помощью Inner Join.

Это хорошая практика или в последующие годы возникнут какие-либо противоречия?

Просто посмотрите

SELECT Distinct(email)
FROM AP_GROUPS_INTO_ORGANIZATION M 
INNER JOIN GROUPSDB G on G.ID = M.GROUPID
INNER JOIN aspnet_Roles r ON R.RoleName = G.GROUPNAME
INNER JOIN aspnet_UsersInRoles U ON U.RoleId = R.RoleId  
INNER JOIN aspnet_membership a on a.UserId = U.UserId
WHERE G.GROUPNAME = 'GROUP001'

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Это должно быть хорошо. Я вижу, что вы используете таблицы aspnet в запросе, и я бы посоветовал не изменять их структуру или индексы без предварительного тестирования, чтобы гарантировать, что вы не создадите новые проблемы.

Довольно часто такое число объединений, если ваши данные сильно нормализованы.

0 голосов
/ 10 марта 2011

Единственное, что я хотел бы изменить, и из-за того, что таблица, основанная на ограничениях ваших критериев, а не на нижних уровнях в соединяемых таблицах, будет заключаться в том, чтобы перемещать таблицу групп вперед, как ... Кроме того, отступ помогаетчтобы четко показать взаимосвязи между таблицами.

SELECT
      Distinct(email)
   FROM
      GROUPSDB G
         INNER JOIN AP_GROUPS_INTO_ORGANIZATION M 
            ON G.ID = M.GROUPID
         INNER JOIN aspnet_Roles r
            ON G.GROUPNAME = R.RoleName
            INNER JOIN aspnet_UsersInRoles U 
               ON R.RoleId = U.RoleId
               INNER JOIN aspnet_membership a 
                  on U.UserId = a.UserId
   WHERE
      G.GROUPNAME = 'GROUP001'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...