标题:[求助]如何实现这种多表查询结果?
取消只看楼主
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
 问题点数:0 回复次数:4 
[求助]如何实现这种多表查询结果?
A、B、C、D四个表,表结构及记录如下:

A:id,姓名,性别
1 王某 男
2 李某 男

B:Aid,课程,得分
1 历史 80
2 政治 90
1 政治 75

C:Aid,宿舍
1 801#

D:Aid,出勤
2 满勤

我想通过查询姓名为“王某”的一些情况: 姓名-课程-得分-宿舍-出勤

select A.姓名,B.课程,B.得分,C.宿舍,D.出勤 from A,B,C,D where B.Aid=A.id and C.Aid=A.id and D.Aid=A.id

查询的结果为 空,看了一下主要原因是D表中没有Aid为1的纪录。
我想实现的结果为(课程、得分超过1条纪录则合并):

姓名 课程 得分 宿舍 出勤
王某 历史、政治 155 801#

如果查询"李某"结果如下:
姓名 课程 得分 宿舍 出勤
李某 政治 90 满勤



搜索更多相关主题的帖子: 结果 查询 
2007-05-11 12:37
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
谢谢!
但是D表中我不想出现这个纪录 1 NULL

有什么办法么?

2007-05-11 14:06
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
马上就试试

2007-05-11 17:30
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
相当感谢棉花糖ONE!问题解决!

看来sql要学的东西相当多啊,努力!

2007-05-11 22:12
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 

棉花糖ONE斑竹大人:
但是D表中如果没有纪录: 1 NULL
则,显示的数据就少了一条
where B.Aid=A.id and C.Aid=A.id and D.Aid=A.id) as t


我的意思是,C库、D库有值则取值,没有值但不影响

比如:我想列出如下内容:

id 姓名 性别 课程 得分 宿舍 出勤
1 王某 男 历史、政治 155 801#
2 李某 男 政治 90 满勤

但是如果加上这个条件:B.Aid=A.id and C.Aid=A.id and D.Aid=A.id就可能查询结果为空了!


2007-05-11 23:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-138521-1-1.html




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

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