| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1493 人关注过本帖
标题:[求助] 三表查询的问题
只看楼主 加入收藏
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
结帖率:0
收藏
 问题点数:0 回复次数:13 
[求助] 三表查询的问题
三个表的结构如下:

公司表: (公司代码 中文名称 英文名称 公司地址 备注)
个人表: (个人代码 中文姓名 英文姓名 姓别 备注)
隶属表: (公司代码 个人代码)

要从这三个表中读取数据,SELECT语句应该怎么写?
(注意:同一个公司可能包括很多人,而一个人也可能隶属几个公司,
记录我就不举例了,相信各位高手应该看得懂我的意思了.)

Thanks
搜索更多相关主题的帖子: 查询 
2007-11-17 16:38
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
我不知道你要查什么..所以我不知道怎么写.

我的msn: myfend@
2007-11-17 17:21
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
以下是引用purana在2007-11-17 17:21:08的发言:
我不知道你要查什么..所以我不知道怎么写.

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

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

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

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

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

不知道这样写清不清楚!

非常感谢!

[此贴子已经被作者于2007-11-17 18:59:56编辑过]

2007-11-17 17:51
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
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.个人代码

我的msn: myfend@
2007-11-17 19:16
xiuit
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-11-12
收藏
得分:0 
好象有个人在这里也问过类似的问题,不过说是的名片管理,形式和这个一样,可以参看一下,这个不会是你们的练习题吧?你们是一个班的吗?呵呵

思想重于代码
2007-11-17 21:07
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
以下是引用purana在2007-11-17 19:16:24的发言:
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.个人代码

非常感谢 purana,
数据是查出来了,但是出了个很奇怪的问题:
公司表和个人表中有同名字段时,怎么引用?
(你用了个a.字段名、b.字段名 这样就行了,
但奇怪的是我这样用它就显示不出东西了,而用原字段名就可以,
我用a.字段名 as "别名" 也不行,真是见鬼了!

why?

2007-11-17 21:12
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
以下是引用xiuit在2007-11-17 21:07:52的发言:
好象有个人在这里也问过类似的问题,不过说是的名片管理,形式和这个一样,可以参看一下,这个不会是你们的练习题吧?你们是一个班的吗?呵呵

呵呵,
感谢 xiuit 这么认真的关注,你再看看那个发帖的人是谁呢!

~_~

2007-11-17 21:15
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
以下是引用robinbest在2007-11-17 21:12:51的发言:

非常感谢 purana,
数据是查出来了,但是出了个很奇怪的问题:
公司表和个人表中有同名字段时,怎么引用?
(你用了个a.字段名、b.字段名 这样就行了,
但奇怪的是我这样用它就显示不出东西了,而用原字段名就可以,
我用a.字段名 as "别名" 也不行,真是见鬼了!

why?

请贴出你是怎么写的..我才知道why.
不然就真的见鬼了.


我的msn: myfend@
2007-11-17 21:21
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
论坛改版了?

好是好,不过我昨晚发的帖子咋不见了?
2007-11-22 08:41
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
原帖由 purana 于 2007-11-17 21:21 发表 [url=http://bbs.][/url]
以下是引用robinbest在2007-11-17 21:12:51的发言:
非常感谢 purana,数据是查出来了,但是出了个很奇怪的问题:公司表和个人表中有同名字段时,怎么引用?(你用了个a.字段名、b.字段名 这样就行了,但奇怪的是我这样用它就显示 ...



我知道问题出在哪里了:
错误:select a.字段名 as "别名"
正确:select a.字段名 as  别名
为什么?

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

这样查出来,如果"Z001"在隶属表中有两条记录,
查出来的记录就会重复2倍,有3条记录,查出来的记录就会重复3倍。
为什么?

Thanks
2007-11-22 21:12
快速回复:[求助] 三表查询的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017297 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved