2011-09-30 113 views
0

我有2个表具有多对一的关系。举例来说,我们将把这个表称为“男士”和女孩“有一个包含相关主键的联结表...谁已经约会谁了MS Access选择相关行

如果我想查找Guy 1已经过期的所有女孩,我在联结表上选择了所有带有guys.ID的女孩,这给了我一个RecordSet,现在要找到女孩的名字,我需要使用每个RecordSet行中的关键字从女孩表中选择一行。

是不是有更简单的方法?因为我已经定义在Access中的关系,我觉得必须有建立一个查询的方式。我该怎么办呢?

+0

由于您已经在Access中定义了关系,您应该能够使用查询设计工具自动为您编写内部连接:IIRC一种方法是打开“显示表”,双击以添加表格,选择列展示并完成。这是[Microsoft QBE](http://en.wikipedia.org/wiki/Microsoft_Query_by_Example)的主要功能之一,也是首先定义关系的唯一原因(不考虑参考完整性)。 – onedaywhen

回答

2
SELECT girls.name 
FROM (guys 
INNER JOIN junct ON guys.guyID = junct.guyID) 
INNER JOIN girls ON junct.girlID = girls.girlID 
WHERE guys.guyID = [whatever id you're looking for] 
+1

@Papa Dilbert欢迎加入JOIN国家,SQL开始真正有用。 :)请评论,如果你需要更多的解释如何和为什么这个作品。 –

+0

是的,自从我使用Access以来,已经有一段时间了......我编辑了括号并接受了pheedbaq的更改 – malificent

+1

仍然不正确,您需要将其中的一个移到前面的人之前。 – Fionnuala