SQL Server数据库应用中,我们经常会用到多对多查询,本文我们就给出了一个简单的多对多查询的实例,接下来就让我们一起来了解一下这部分内容。
题目是这样的:
- ---学生表
- CREATE TABLE student (
- ID INTEGER,
- stu_No INTEGER,
- NAME VARCHAR2(32)
- );
- --课程表
- CREATE TABLE course (
- ID INTEGER,
- cou_no INTEGER,
- NAME VARCHAR2(32)
- );
- --中间表
- CREATE TABLE s_c (
- stu_id INTEGER,
- cour_id INTEGER
- );
问题:找出名字为张三的学号,姓名 对应学的课程的编号和课程名称,一个sql完成。请问这个查询语句,应该怎么写?
解决方法:
- --多表查询
- SELECT STU.STU_NO, STU.NAME --, COU.COU_NO, COU.NAME
- FROM S_C SC
- LEFT JOIN STUDENT STU
- ON STU.ID = SC.STU_ID
- LEFT JOIN COURSE COU
- ON COU.ID = SC.COUR_ID
- WHERE STU.NAME = '梁帅伟';
- --就算他没有参加任何课程,也将他的姓名,学号查询出来 (left join 以 此关键字前的表为准)
- SELECT S.STU_NO 学号, S.NAME 姓名, C.COU_NO 课程编号, C.NAME 课程名称
- FROM STUDENT S
- LEFT JOIN S_C SC
- ON S.ID = SC.STU_ID
- LEFT JOIN COURSE C
- ON C.ID = SC.COUR_ID
- WHERE S.NAME = '梁文兴';
关于SQL Server数据库多对多查询的实例就介绍到这里的,希望本次的介绍能够对您有所收获!
【编辑推荐】