Office中国论坛/Access中国论坛

标题: 求助:一对多关系表的查询问题 [打印本页]

作者: netzerg    时间: 2010-2-4 22:16
标题: 求助:一对多关系表的查询问题
假设有表A和表B是一对多的关系。

表A举例:
ID  姓名  年龄
----------------------
1   张三  20
2   李四  30
------------------------
表B举例:

姓名   课程  成绩
-----------------------
张三   语文  80
张三   数学  90
李四   语文  90
李四   化学  70
-----------------------

表A和表B通过姓名进行联系

现在的要求如下:
如果一个人既有语文的成绩,又有数学的成绩,那么把这个人的姓名列出来(本例中符合要求的姓名是:张三)
请问要如何写查询语句呢?
谢谢!
作者: t小宝    时间: 2010-2-4 22:23
你试试看:
SELECT 表b.姓名
FROM 表b AS 表b_1 INNER JOIN 表b ON 表b_1.姓名 = 表b.姓名
WHERE (((表b.课程)="语文") AND ((表b_1.课程)="数学"));
作者: netzerg    时间: 2010-2-4 22:31
谢谢!
请问表b_1是什么意思?
怎么没看到语句中有“表A”的字样?
作者: netzerg    时间: 2010-2-4 23:00
实际试过成功了,谢谢!
似乎是把表B做了个复制,两表联合查询,找出同时满足课程是语文和数学的记录
是这个思路吗?
作者: iamee    时间: 2010-2-4 23:06
是的
表B的姓名用表A的ID比较规范
作者: netzerg    时间: 2010-2-4 23:13
放在我的数据库里运行通过!
非常感谢!重要的是学到了思路,关键是对B的复制以及B和B复制表之间的联合




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3