SQL区别联接
我试图在另一个字段上加入一个不同的字段 示例:tbl.Class中有多行在column.Teacher下分类,它们具有相同的值。我只想将column.Teacher中的一个不同值连接到另一个表(tbl.Course)中的column.Teacher\u课程 下面是我的想法,但我不是从tbl.Class中只检索一个值,而是得到多个联接SQL区别联接,sql,sql-server-2008,join,outer-join,Sql,Sql Server 2008,Join,Outer Join,我试图在另一个字段上加入一个不同的字段 示例:tbl.Class中有多行在column.Teacher下分类,它们具有相同的值。我只想将column.Teacher中的一个不同值连接到另一个表(tbl.Course)中的column.Teacher\u课程 下面是我的想法,但我不是从tbl.Class中只检索一个值,而是得到多个联接 SELECT distinct(Teacher.JohnJoe) FROM tbl.Class RIGHT OUTER JOIN tbl.Course ON C
SELECT distinct(Teacher.JohnJoe)
FROM tbl.Class
RIGHT OUTER JOIN tbl.Course ON Course.Teacher_Course = Class.Teacher
您也可以尝试使用GROUP BY子句:
SELECT Teacher.JohnJoe
FROM tbl.Class
RIGHT OUTER JOIN tbl.Course ON Course.Teacher_Course = Class.Teacher
GROUP BY Teacher.JohnJoe
简历:
- 任务型教学中的多位教师
- tbl课程中的单一教师
- 结果应为tbl课程中的每个记录提供一名tbl班教师
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
在国际海事组织,一些样本数据将帮助我们更好地理解您的问题。