数据库中几个表之间的关联查询

数据|数据库

   在数据库操作中,有很多时候不是对某一个表进行数据库操作,通常还会把其他表的字段的值也传递过来。不过这连个表不是没有关系的。通常通过索引或者健关联起来

       如下为一个例子。

       表一。表名称tb1.其中studentID为主索引。外健。

studentID

studentName

studentGender

studntAge

3102079014

刘永相

25

3102079015

赵某某

23

       表二。表名称tb2.其中teacherID为主索引。外健。

teacherID

teacherName

teacherManageStudent

teacherMemo

3645221

刘刚

3102079014

备注无

3645222

成昆

3102079015

备注无

       现在有一个查询,需要知道某一个老师管理的学生的名字。由表二可以知道老师刘刚管理的是3102079014这个学生,又由表1知道3102079014这个学生的名称为刘永相。怎么写这个查询语句呢?

       如下:

       sql=”select tb2.teacherName,tb1.studentName for tb2,tb1 where tb2.teacherManageStuent=tb1.studentID”

       出来的结果为:

teacherName

studentName

刘刚

刘永相

       可能读者马上就会产生一个疑问,在表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

成昆

备注无

 

时间: 2024-09-14 13:05:24

数据库中几个表之间的关联查询的相关文章

数据库中两张表之间的数据同步增加、删除与更新实现思路_MsSql

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加: 如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. 复制代码 代码如下: CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END

一致性-在数据库中已有表数据的外键的建立问题

问题描述 在数据库中已有表数据的外键的建立问题 我的数据库中的表都有上万条的数据,考虑到表之间的数据一致性,需要用到外键,但是现在对表进行外键创建的时候报错了:"消息 547,级别 16,状态 0,第 2 行 ALTER TABLE 语句与 FOREIGN KEY 约束"FK_TM_ProT"冲突.该冲突发生于数据库"Master",表"dbo.TProD", column 'ID'." 这个ID列示该表的主键+唯一建,现在想

java根据数据库中的关系表来做拓扑关系图

问题描述 java根据数据库中的关系表来做拓扑关系图 如何用java根据数据库中的关系表来生成拓扑关系图,体现出一个人下的好友,就像facebook用户下所关联的其他好友! 解决方案 社交网络中使用的数据库是非关系型数据库如nosql等,可以研究下nosql中对于关系的表达.

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运

asp.net用gridview显示数据库中两个表的数据?

问题描述 asp.net用gridview显示数据库中两个表的数据? asp.net用gridview显示数据库中两个表的数据?把两表绑定在datatable并用gridview显示数据 解决方案 两个表什么关系?如果是一样的表结构,用union连接,如果是主系表关系,那么可以用join.具体按照我说的google下. 解决方案二: 不管是查询几个表,最后通过sql语句走ado.net,查询出来的数据都放入DataTable或DataSet中,然后绑定到gridview 解决方案三: 如果是一起

sql-将一个数据库中的所有表复制到另一个数据库中

问题描述 将一个数据库中的所有表复制到另一个数据库中 两个数据库不在一个服务器上!!! 比如我本机的ip地址为11.12.13.15 数据库名称为sqljiang 登陆名和密码分别为sa和sa123 服务器的ip为22.33.55.66 数据库名称为sqlfwqsjl 服务器中的数据库是空的 现在我想将本机sqljiang中的所有信息完整复制到服务器中,包括表结构. 表中的数据.视图.存储过程等,如何通过脚本实现. 由于服务器没有这么大的权限,因此不能通过直接还原数据库备份的方法... 解决方案

select-在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写

问题描述 在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写 List<string> tableNames = "Select( (string)x["Table_Name"] from dt where type=1 and flags=0)"; dt是连接数据库时设定的表名 解决方案 sql语句如下所示:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' 前提是提前设置好config配置文

mysql-php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来

问题描述 php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来 <?php include(""connectDB.php""); @$query=mysql_query($conSELECT * from xx""); @$result=mysql_fetch_array(@$query); if($result==true){ ?> <table width=""

如何修复损坏数据库中的数据表

在使用MySQL过程中,各种意外会导致数据库表的损坏,而且这些数据往往是最新的数据,通常不可能在备份数据中找到.在使用阿里云数据库RDS产品中,RDS是如何修复损坏数据库中的数据表的呢?在传统数据库中,又是如何对其进行修复的呢?接下来,我们将做一个比较: 阿里云数据库RDS 阿里云提供的关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和高性能存储,RDS 支持 MySQL.SQL Server.Po