2012-04-18 63 views
0

我正尝试在另一个字段上加入不同的字段。SQL独特加入

示例:在column.Teacher下分类的tbl.Class中有多个具有相同值的行。我想要将column.Teacher中的一个DISTINCT值连接到另一个表(tbl.Course)中的column.Teacher_Course。

这是我的想法,但不是只从tbl.Class中检索一个值,我得到多个连接。

SELECT distinct(Teacher.JohnJoe) 
FROM tbl.Class 

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

IMO,一些样本数据将有助于我们理解你的问题更好。 – 2012-04-18 19:35:44

回答

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的单​​个教师。课程

我的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] 

导致:

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