데이터베이스 테이블에 Users
(SQL Server 2008 R2)이라는 사용자 목록이 있습니다. 사용자의 UserName
외에도 사용자를 분류하는 두 개의 필드가 있습니다. 즉, 간단하게하기 위해 Department
및 JobTitle
이라고 말합니다.테이블 B의 두 열과 일치하는 테이블 A의 레코드 일부를 선택하십시오.
| UserName | Department | JobTitle |
------------------------------------------
| Joe | IT | SysAdmin |
| Jim | IT | DBA |
| Jeff | Sales | SalesMgr |
| Mack | Sales | Rep |
나는 또한 내가 실제로 신경 Department
및 JobTitle
의 특정 조합을 나열하는 테이블, ActiveJobs
을 보유하고 있습니다.
| Department | JobTitle |
-----------------------------
| IT | SysAdmin |
| Sales | SalesMgr |
| Sales | Rep |
나는 ActiveJobs
에 Department
/JobTitle
의 조합 일치 Users
에서 각 레코드를 선택합니다. 나는이 쿼리는 그것을 할 것이라고 생각 :
SELECT Users.*
FROM Users
INNER JOIN ActiveJobs DEP
ON Users.Department = DEP.Department
INNER JOIN ActiveJobs JOB
ON Users.JobTitle = JOB.JobTitle
을하지만 한 번 나는 Department
열에서 중복으로 인해 발생 생각 많은 경우 (보다 같은 User
기록을 더 리턴 -하지만 난 정말 이해가되지 않는 이유). 위의 예제에서 (Joe, Jim, Jim, Mack) 나는 (Joe, Jim, Mack)을 얻고 자 함에도 불구하고 얻고 있습니다.
어떤 쿼리 일부 일치를 가지고User
의 기록 조합을 얻을 것 Department
의 및 Active Jobs
에서 JobTitle
?