my_00
my_00
采纳率0%
2015-06-07 02:57

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

  • sql

有四个表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条回答

  • danielinbiti danielinbiti 6年前
     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
    
    点赞 1 评论 复制链接分享
  • devmiao devmiao 6年前

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

    点赞 1 评论 复制链接分享
  • devmiao devmiao 6年前

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

    点赞 1 评论 复制链接分享
  • devmiao devmiao 6年前

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

    点赞 1 评论 复制链接分享
  • xingqi_2002 xingqi_2002 6年前

    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

    点赞 评论 复制链接分享
  • my_00 my_00 6年前

    图片说明

    点赞 评论 复制链接分享