注册 登录
编程论坛 SQL Server论坛

[求助] 三表查询的问题

robinbest 发布于 2007-11-17 19:03, 1401 次点击

三个表的结构如下:

公司表: (公司代码 中文名称 英文名称 公司地址 备注)
D001 三星电子 samsung BeiJing

个人表: (个人代码 中文姓名 英文姓名 姓别 备注)
Z001 张三 zhangsan
W002 王五 wangwu

隶属表: (公司代码 个人代码)
D001 Z001
D001 W002

要从这三个表中读取数据,SELECT语句应该怎么写?
(注意:同一个公司可能包括很多人,而一个人也可能隶属几个公司.)

比如:(1)显示出个人代码"Z001"的信息(包括:公司中文名称、公司地址、中文姓名、英文姓名、姓别)
(2)再以此格式显示出个人表中所有人的上述信息

其实如果将隶属表和个人表合并,这个问题倒一点都不复杂,
关键在于同一个人可能同时隶属几个公司,所以才单独用个隶属表来表现,
这样一来,公司表和个人表就没有直接联系了。它们得通过隶属表这个中间表来建立关系。

不知道这样写清不清楚!

非常感谢!

5 回复
#2
purana2007-11-17 19:17

1.
select a.中文名称,a.公司地址,b.中文姓名,b.英文姓名,b.性别
from 公司表 a,个人表 b,隶属表 c
where a.公司代码=c.公司代码 and b.个人代码='Z001' and b.个人代码=c.个人代码

2.
select a.中文名称,a.公司地址,b.中文姓名,b.英文姓名,b.性别
from 公司表 a,个人表 b,隶属表 c
where a.公司代码=c.公司代码 and b.个人代码=c.个人代码

#3
nianshi2007-11-21 12:08
这样就可以啊 看题意描述好像挺复杂的
#4
orliubc2007-11-22 14:32
没什么难度啊,,,,多WHERE下就搞定拒
#5
缘吇弹2007-11-22 17:06
原帖由 nianshi 于 2007-11-21 12:08 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1109603&ptid=186804][/url]
这样就可以啊 看题意描述好像挺复杂的

不信的话你可以试一下的嘛
#6
taotao70802007-11-25 11:40
不错!
1