I've got three tables (sample code below) called Reports, Users, and UserReportPermission. Users are allowed all of the reports, except the ones that are in UserReportPermission. I'm using a "WHERE NOT EXISTS" with a subquery. Is this the best way to do this, or is there a LEFT JOIN type solution that I'm overlooking?In production there will be much more data than this but here's an example of the problem. CREATE TABLE #Users(UserID INT, UserName VARCHAR(50)) INSERT INTO #Users(UserID, UserName) VALUES(1234, 'User 1234') INSERT INTO #Users(UserID, UserName) VALUES(5678, 'User 5678')CREATE TABLE #Report(ReportID UNIQUEIDENTIFIER, ReportName VARCHAR(50)) INSERT INTO #Report(ReportID, ReportName) VALUES('94A483B9-0A77-47C3-87DB-3699A0740E9B', 'Report 1') INSERT INTO #Report(ReportID, ReportName) VALUES('8DF0BFF9-7C2B-4CC3-9FAE-3531E179DA73', 'Report 2') INSERT INTO #Report(ReportID, ReportName) VALUES('9D2A901E-35ED-40D3-90D3-34AA812718B9', 'Report 3')--This table contains a record--for each report that a user--is denyed.--By Default, user get all reports--in this table, excpect the ones they --are specificlly denyedCREATE TABLE #UserReportPermission(UserID INT, ReportID UNIQUEIDENTIFIER) INSERT INTO #UserReportPermission(UserID, ReportID) VALUES('1234', '94A483B9-0A77-47C3-87DB-3699A0740E9B') INSERT INTO #UserReportPermission(UserID, ReportID) VALUES('5678', '8DF0BFF9-7C2B-4CC3-9FAE-3531E179DA73')DECLARE @UserID INT--SET @UserID = '1234'SET @UserID = '5678'SELECT r.ReportNameFROM #Report rWHERE NOT EXISTS(SELECT 1 FROM #UserReportPermission urp WHERE r.ReportID = urp.ReportID AND urp.UserID = @UserID)DROP TABLE #UserReportPermissionDROP TABLE #ReportDROP TABLE #UsersMichael<Yoda>Use the Search page you must. Find the answer you will.</Yoda>