欢迎光临
我们一直在努力

一个SQL Server多对多查询的面试题

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数据库多对多查询的实例就介绍到这里的,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. 适合初学者的MySQL学习笔记之管理员常用操作总结
  2. 适合初学者的MySQL学习笔记之SELECT语句使用详解
  3. MySQL数据库存储引擎之MyISAM和InnoDB的区别对比
  4. 适合初学者的MySQL学习笔记之ORDER BY子句使用详解
  5. 适合初学者的MySQL学习笔记之MySQL常用命令操作技巧

赞(0) 打赏
未经允许不得转载:九八云安全 » 一个SQL Server多对多查询的面试题

评论 抢沙发