我需要使用Inner Join連接5個表。SQL Server 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'
5'JOIN's是確定的,如果這就是你所需要的語義。我可能會更改爲'WHERE EXISTS'而不是'JOIN',然後使用'DISTINCT'擺脫重複。確保您查看查詢計劃並在FK列上添加任何必需的索引。 – 2011-03-10 11:34:04
@Martin我會非常小心的推薦DISTINCT的使用如此自由。我已經看到了開發人員編寫查詢的情況,查看了一堆重複內容,只需粘在DISTINCT中即可擺脫它們而不理解正在發生的事情。我不是在這裏說這種情況,但它不是我鼓勵人們在沒有考慮的情況下使用的。 – SecretDeveloper 2011-03-10 11:58:50
@Kaius - 我絕對不建議'DISTINCT'我說的相反,事實上,他們應該使用'WHERE EXISTS' ** **代替(儘管可能不足夠強烈) – 2011-03-10 12:00:24