在数据库操作中,有很多时候不是对某一个表进行数据库操作,通常还会把其他表的字段的值也传递过来。不过这连个表不是没有关系的。通常通过索引或者健关联起来
如下为一个例子。
表一。表名称tb1.其中studentID为主索引。外健。
studentID |
studentName |
studentGender |
studntAge |
3102079014 |
刘xx |
男 |
25 |
3102079015 |
赵某某 |
男 |
23 |
表二。表名称tb2.其中teacherID为主索引。外健。
teacherID |
teacherName |
teacherManageStudent |
teacherMemo |
3645221 |
刘刚 |
3102079014 |
备注无 |
3645222 |
成昆 |
3102079015 |
备注无 |
现在有一个查询,需要知道某一个老师管理的学生的名字。由表二可以知道老师刘刚管理的是3102079014这个学生,又由表1知道3102079014这个学生的名称为刘xx。怎么写这个查询语句呢?
如下:
sql=”select tb2.teacherName,tb1.studentName for tb2,tb1 where tb2.teacherManageStuent=tb1.studentID”
出来的结果为:
teacherName |
studentName |
刘刚 |
刘xx |
可能读者马上就会产生一个疑问,在表2里头。teacherID作为索引,必然只有唯一的一个ID记录。那么我怎么来管理所有的学生呢?
由两个处理的方法。1:在teacherManageStudent字段里头把所有的学生的ID都录进去。中间用!或者其他符号表示出来,在后面的sql生成的时候,用一个循环来不断地把所有的学生得ID都写入sql.:2:tb2不要建成如上的形式,在tb2里放置老师的基本信息。另外一个新表里头放置的老师的ID和老师管理学生ID的记录,如下:
新表:表名称tb3
teacherID |
teacherManageStudent |
3645221 |
3102079014 |
其中表2变成了
teacherID |
teacherName |
teacherMemo |
3645221 |
刘刚 |
备注无 |
3645222 |
成昆 |
备注无 |