我有一个查询,我可以让它工作的唯一方法是在三个字段上左加入。如果我对这三个字段进行普通的内部联接,则查询不会返回任何内容。但是,如果我尝试单独加入每个人,他们都会按照我的预期加入,例如 Bob 到 Bob、Bookshop 到 Bookshop、Bread 到 Bread 等。
那么对于这两组查询结果...
1.Manager 1.Shop 1.Product 1.Cost 2.Manager 2.Shop 2.Product 2.Quantity
Bob Hardware Spanners 15 Bob Hardware Spanners 3
Terry Food Bread 12 Terry Food Bread 4
Sue Bookshop Books 18 Sue Bookshop Books 7
...此查询不返回任何结果:
SELECT 1.Manager, 1.Shop, 1.Product, 1.Cost, 2.Quantity
FROM 1 INNER JOIN 2 ON 1.Manager = 2.Manager AND 1.Shop = 2.Shop AND 1.Product = 2.Product;
我知道加入文本并不理想,但我有类似的查询可以毫无问题地加入这三个字段,所以想知道这是否是我遇到的 Access 的“功能”,或者它是否可能是数据?
-编辑-
通过将 JOIN 条件改为 WHERE 子句,我发现,如果我有 WHERE 1.Manager = "Bob" AND 2.Manager = "Bob:
WHERE 1.Product = "Spanners"
独立工作,并且:
WHERE 2.Product = "Spanners"
单独工作,但将两者结合起来:
WHERE 1.Product = "Spanners" AND 2.Product = "Spanners"
再次返回什么!
-编辑2-
主查询在引用表中的数据时确实表现正常。因此,基本查询返回结果的方式可能有些奇怪。
-编辑 3-
这是问题示例的链接:[链接已删除]
01 顶级查询:这两个是一样的,但一个是指表,并且是有效的;而另一个是指查询,并且不起作用。我想找出为什么查询版本不起作用。
02 2nd Level Queries and Tables:每组数据有两个版本 - 一个是查询,另一个是使用查询的 Make Table 版本制作的表。据我所知,两者都是相同的。
03 和 04 级查询:这些是构成第二级查询的较低级别查询
表:这些是构建所有其他查询的基础表。