请教一个数据库表的设计问题

auauxxx 2012-02-27 08:51:26
举个例子,有三个表A、B、C,表A保存某些班级,B和C保存两个班级的名单

班级 一年级1班名单 一年级2班名单
+--------A---------+ +-----B------+ +-----C------+
+ 1 + 一年级1班 + + 张三 + + 赵一 +
+ 2 + 一年级2班 + + 李四 + + 钱二 +
+ 3 + 二年级1班 + + 王五 + + 孙三 +
+ 4 + 二年级2班 + + 刘六 + + 李四 +
+------------------+ +------------+ +------------+

问:如何把表B与表A第一条记录,表C与第二条记录关联起来?如,当我在表A里查找“一年级1班"时,我就知道表B是要找的名单。 有什么SQL语句可以实现这个功能吗?望高手指点一下,谢谢。
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
auauxxx 2012-02-29
  • 打赏
  • 举报
回复
我也是考虑增加一个字段用来保存表名,这种方法现在实现了.其实我想实现的功能是从某个设备上读取数据,3600条最多,一个表保存一个设备的数据.还需要把每个设备的所在地址记录下来,以供查找.所以我就想实现一条记录对应一个表,这样感觉程序设计上直观些.你说的第二种我再想想,谢谢啦[Quote=引用 3 楼 seanhui74 的回复:]

在A表中增加一个字段,用来记录班级对应的表名
不过这种表结构设计不是太好,从实体关系上来说,班级和学生是两个实体,只需要建立两张表就可以了,班级作为学生的一个属性,应该在学生表中增加一个列来记录学生对应的班级信息,这样在查询学生信息时,只需要把班级信息作为一个条件代入即可。
[/Quote]
seanhui74 2012-02-29
  • 打赏
  • 举报
回复
在A表中增加一个字段,用来记录班级对应的表名
不过这种表结构设计不是太好,从实体关系上来说,班级和学生是两个实体,只需要建立两张表就可以了,班级作为学生的一个属性,应该在学生表中增加一个列来记录学生对应的班级信息,这样在查询学生信息时,只需要把班级信息作为一个条件代入即可。
auauxxx 2012-02-27
  • 打赏
  • 举报
回复
实现的思路能说的详细些吗?我想要实现的功能是表A里的每一条记录都有一个表相对应,当我选择了某一条我就能得到相对应的表,如何实现呢(PS:表B C D...是先生成的,然后再往A里添加记录)
select name,1 as 班级[Quote=引用 1 楼 acmain_chm 的回复:]

from b
union all
select name,3 as 班级
from c
union all
select name,3 as 班级
from d
[/Quote]
ACMAIN_CHM 2012-02-27
  • 打赏
  • 举报
回复
select name,1 as 班级
from b
union all
select name,3 as 班级
from c
union all
select name,3 as 班级
from d

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧