多表查询信息

## 多表信息查询 ##


多表的信息的查询涉及到第三方表的构建,一般来说会把两个目标表的主键作为这个第三方表的联合外键进行设置,并添加外约束。现如果想进行多表查询如查询教师编号为XX的所有的学生的信息,就可以使用

该操作的前提是数据库中已经按照规则设计好了数据库表。

"select s.* from teacher_student ts , student s where ts.teacher_id =? and ts.student_id = s.id"

细节描述:

这句SQL语句的含义如下:

  • 先是select * from teacher_student where teacher_id =?
  • 然后给teacher_student取个别名,方便后续的操作,即select * from teacher_student ts where ts.teacher_id = ?
  • 再就是怎么将两个表联系起来的实现,即select * from teacher_student ts ,student s where ts.teacher_id = ?
  • 这样仍然是不够的,要想取出学生数据还应还进一步约束,即select * from teacher_student ts ,student s where ts.teacher_id = ? and ts.student_id = s.id
  • 这样就结束了吗?不,上面那个sql语句获得的是两个表的联合结果,要想获得学生信息,还应该进一步的对sql语句进行优化。即select s.* from teacher_student ts,student s where ts.teacher_id = ? and ts.student_id = s.id,好了这样就大功告成了。

至此,便可以简单的从多对多的数据库表中实现多表信息查询的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值