一个SQLServer多对多查询的面试题

SQL Server数据库应用中,我们经常会用到多对多查询,本文我们就给出了一个简单的多对多查询的实例,接下来就让我们一起来了解一下这部分内容。

创新互联是一家集网站建设,新华企业网站建设,新华品牌网站建设,网站定制,新华网站建设报价,网络营销,网络优化,新华网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

题目是这样的:

 
 
 
  1. ---学生表 
  2. CREATE TABLE student ( 
  3. ID INTEGER, 
  4. stu_No INTEGER, 
  5. NAME VARCHAR2(32) 
  6. ); 
  7. --课程表 
  8. CREATE TABLE course ( 
  9. ID INTEGER, 
  10. cou_no INTEGER, 
  11. NAME VARCHAR2(32) 
  12. ); 
  13. --中间表 
  14. CREATE TABLE s_c ( 
  15. stu_id INTEGER, 
  16. cour_id INTEGER 
  17. );

问题:找出名字为张三的学号,姓名 对应学的课程的编号和课程名称,一个sql完成。请问这个查询语句,应该怎么写?

解决方法:

 
 
 
  1. --多表查询 
  2. SELECT STU.STU_NO, STU.NAME --, COU.COU_NO, COU.NAME
  3. FROM S_C SC
  4. LEFT JOIN STUDENT STU
  5. ON STU.ID = SC.STU_ID
  6. LEFT JOIN COURSE COU
  7. ON COU.ID = SC.COUR_ID
  8. WHERE STU.NAME = '梁帅伟';
  9. --就算他没有参加任何课程,也将他的姓名,学号查询出来 (left join 以 此关键字前的表为准)
  10. SELECT S.STU_NO 学号, S.NAME 姓名, C.COU_NO 课程编号, C.NAME 课程名称
  11. FROM STUDENT S
  12. LEFT JOIN S_C SC
  13. ON S.ID = SC.STU_ID
  14. LEFT JOIN COURSE C
  15. ON C.ID = SC.COUR_ID
  16. WHERE S.NAME = '梁文兴';

关于SQL Server数据库多对多查询的实例就介绍到这里的,希望本次的介绍能够对您有所收获!

本文名称:一个SQLServer多对多查询的面试题
网站URL:http://www.shufengxianlan.com/qtweb/news3/226953.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联