2 my 00 my_00 于 2015.06.07 10:57 提问

求助:SQLServer查询实现:有四个表,我如何实现查询得到新表??

有四个表ZhiYu、DeYu、TiYu、Coursetype,都有共同字段coursetypeid。表Coursetype起提供课程名称的作用。表ZhiYu、DeYu、TiYu所有字段都相同。
问题:我如何实现查询表ZhiYu、DeYu、TiYu所有字段数据加表Coursetype中的课程名称??
表如下图所示:

 表ZhiYu:
 courseID   coursename   coursetypeID
 100001      智育1                 001
 100002      智育2                 002
 100003      智育3                 003
 100004      智育4                 001
表 DeYu:
courseID   coursename   coursetypeID
 200001      德育1                 001
 200002      德育2                 002
 200003      德育3                 003
 200004      德育4                 001
 表TiYu:
 courseID   coursename   coursetypeID
 300001      体育1                 001
 300002      体育2                 002
 300003      体育3                 003
 300004      体育4                 001
 表Coursetype:
 coursetypeID     typename
 001                    公共必修课
 002                    公共选修课
 003                    专业必修课
 004                    专业选修课

我如何得到:

 courseID   coursename       typename
 100001      智育1                 公共必修课
 100002      智育2                 公共选修课
 100003      智育3                 专业必修课
 100004      智育4                 公共必修课
 200001      德育1                 公共必修课
 200002      德育2                 公共选修课
 200003      德育3                 专业必修课
 200004      德育4                 公共必修课
 300001      体育1                 公共必修课
 300002      体育2                 公共选修课
 300003      体育3                 专业必修课
 300004      体育4                 公共必修课

恳请各位行家高手不吝惜指教!万分感谢!!

6个回答

devmiao
devmiao   Ds   Rxr 2015.06.07 11:26

((select * from ZhiYu) union (select * from DeYu) union (select * from TiYu) as t1) join Coursetype as t2 on t1.coursetypeID = t2coursetypeID

my_00
my_00 有红线错误提示:关键字 'as' 附近有语法错误。
2 年多之前 回复
my_00
my_00 谢谢。我试试。
2 年多之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.07 11:45

((select * from ZhiYu) union (select * from DeYu) union (select * from TiYu)) as t1
括号打错了

my_00
my_00 还是显示:关键字 'as' 附近有语法错误。
2 年多之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.07 11:48

贴个图看看。是前面的as还是后面的as

my_00
my_00 是前面的。
2 年多之前 回复
my_00
my_00 是前面的。
2 年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.06.07 15:21
 SELECT courseID,coursename,(select typename from Coursetype where coursetypeID=Z.coursetypeID) typename from ZhiYu Z
union
SELECT courseID,coursename,(select typename from Coursetype where coursetypeID=D.coursetypeID) typename from DeYu D
union
SELECT courseID,coursename,(select typename from Coursetype where coursetypeID=T.coursetypeID) typename from TiYu T
danielinbiti
danielinbiti 回复my_00: 如果符合要求,记得采纳一下
2 年多之前 回复
my_00
my_00 谢谢。
2 年多之前 回复
my_00
my_00   2015.06.07 11:54

图片说明

xingqi_2002
xingqi_2002   2015.06.09 14:30

Select a.courseid, a.coursename, b.typename
From
(
Select courseid, coursename, coursetypeid From zhiyu
Union all
Select courseid, coursename, coursetypeid From DeYu
Union all
Select courseid, coursename, coursetypeid From tiyu
) as a
Inner join Coursetype as b on a. coursetypeid = b. coursetypeid

Csdn user default icon
上传中...
上传图片
插入图片