2012-04-18 3 views
0

다른 필드의 고유 필드에 참가하려고합니다.SQL Distinctive Join

예 : tbl.Class에 열이 여러 개 있는데,이 열은 동일한 값을 가지고 있습니다. column에서 하나의 DISTINCT 값에 합류하고 싶습니다. 다른 테이블 (tbl.Course)의 열을 .eacherse 열거합니다.

여기 내가 생각하고있는 것이지만 tbl.Class에서 그 값 하나만 검색하는 대신 여러 개의 조인을 얻습니다.

SELECT distinct(Teacher.JohnJoe) 
FROM tbl.Class 

RIGHT OUTER JOIN tbl.Course ON Course.Teacher_Course = Class.Teacher 
+3

, 일부 샘플 데이터는 우리가 더 나은 질문을 이해하는 데 도움이됩니다. –

답변

1

또한 GROUP BY 절을 사용하려고 할 수 있습니다 :

SELECT Teacher.JohnJoe 
FROM tbl.Class 
RIGHT OUTER JOIN tbl.Course ON Course.Teacher_Course = Class.Teacher 
GROUP BY Teacher.JohnJoe 
0

이력서 : tbl.Class에서

  • 여러 교사
  • 한 교사 tbl.Course
  • 에서
  • 결과는 tbl.Course의 각 레코드에 대해 tbl.Class의 단일 선생이 제공되어야합니다.
  • 012 3,516,

내 SQL 해석 :

DECLARE @class TABLE ([id] int, [teacher] nvarchar(20)) 
DECLARE @course TABLE ([id] int, [course] nvarchar(20), [teacher_course] nvarchar(20)) 

INSERT INTO @class ([id], [teacher]) VALUES (1, 'Teacher 1') 
INSERT INTO @class ([id], [teacher]) VALUES (2, 'Teacher 2') 
INSERT INTO @class ([id], [teacher]) VALUES (3, 'Teacher 3') 
INSERT INTO @class ([id], [teacher]) VALUES (4, 'Teacher 4') 
INSERT INTO @class ([id], [teacher]) VALUES (5, 'Teacher 1') 

INSERT INTO @course ([id], [course], [teacher_course]) VALUES (1, 'Course 1', 'Teacher 1') 
INSERT INTO @course ([id], [course], [teacher_course]) VALUES (2, 'Course 2', 'Teacher 4') 

SELECT 
    [co].[id], 
    [co].[course], 
    [cl].[teacher] 
FROM @course [co] 
INNER JOIN @class [cl] ON [co].[teacher_course] = [cl].[teacher] 
GROUP BY 
    [co].[id], 
    [co].[course], 
    [cl].[teacher] 

결과 : IMO

[id] [course] [teacher] 
1  Course 1 Teacher 1 
2  Course 2 Teacher 4