2012-04-18 18 views
0

別のフィールドに別のフィールドを追加しようとしています。SQL Distinctive Join

例:tbl.Classに列が複数列あり、同じ値を持つ列.eacher。 column.Teacherからcolumnに1つのDISTINCT値だけを結合したいと思います。別のテーブル(tbl.Course)の中の、

ここで私が考えているのは、tbl.Classからその1つの値を取得するだけでなく、複数の結合が得られます。

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から1人の教師になる必要があります

マイ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