多表查询信息
2016-02-04 21:26
232 查看
## 多表信息查询 ##
多表的信息的查询涉及到第三方表的构建,一般来说会把两个目标表的主键作为这个第三方表的联合外键进行设置,并添加外约束。现如果想进行多表查询如查询教师编号为XX的所有的学生的信息,就可以使用
该操作的前提是数据库中已经按照规则设计好了数据库表。
先是
然后给teacher_student取个别名,方便后续的操作,即
再就是怎么将两个表联系起来的实现,即
这样仍然是不够的,要想取出学生数据还应还进一步约束,即
这样就结束了吗?不,上面那个sql语句获得的是两个表的联合结果,要想获得学生信息,还应该进一步的对sql语句进行优化。即
至此,便可以简单的从多对多的数据库表中实现多表信息查询的功能。
多表的信息的查询涉及到第三方表的构建,一般来说会把两个目标表的主键作为这个第三方表的联合外键进行设置,并添加外约束。现如果想进行多表查询如查询教师编号为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,好了这样就大功告成了。
至此,便可以简单的从多对多的数据库表中实现多表信息查询的功能。
相关文章推荐
- 2.案例
- 单链表反转的2种方法
- Codeforces Round #294 (Div. 2) (D)前缀和+map
- 【51单片机】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
- leetcode237题 题解 翻译 C语言版 Python版
- PAT (Basic Level)1008. 数组元素循环右移问题
- MapReduce在MES中的应用
- Android性能优化之缓存的代码实现
- 安卓开发——Math类角度部分
- 备用文档——链接
- 基于PetShop的数据可视化网站(三):可视化插件
- PAT (Basic Level)1007. 素数对猜想
- HDU4135 Co-prime(容斥原理)
- CentOS6.7环境下安装mysql cluster(rpm包方式)
- Android 沉浸式状态栏
- Speeding up Gradle builds
- CMD 警告:错误:编码GBK的不可映射字符
- UIColor之扩展Swift
- wsdl文件详解
- CSDN Markdown 超链接