数据库多表连接

在开始复习数据库的多表连接之前,先来看一个例子。假设数据库有以下的表:

courses: courseId*, courseName, teacherId

teachers:teacherId*,teacherName

students:studentsId*,studentName

studentCourses: courseId*, studentId*(以上带*的字段表示主键)


查询:学生选课情况


实现一个查询,列出所有的学生,以及每个学生选修了几门课程。可能开始我们会这样写:
select A.students, count(*) from students A, studentCourses B where A.studentsId=B.studentsId。
其实这条语句有几个错误,首先,表的连接关系出错。本条语句采用了内连接,会将未选课的学生信息给过滤掉。
数据库的表连接分为内连接和外连接。

内连接


内连接有显式连接和隐式连接写法。上述的写法就是内连接的隐式连接写法。它等价于:
select A.students,count(*) from students A inner join B on A.studentsId=B.studentsId.
studentIdstudentName
10101张三
10102李四

studentIdcourseId
101014
101012

查询的结果为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值