使用MS-Access 2016.多年来一直涉足数据库,但我严格来说是一个业余爱好者。我可能错过了一些明显的答案,但一直没能找到它与我所有的“左连接只显示一行”搜索。 Paradox(DOS)从来没有遇到过这个问题!以下是一些示例数据,显示我卡住的位置。为什么这个左连接查询返回左表中的所有行?
Table 1 - Customers
CustID* | Name
1 | Jane Doe
2 | Jill Doe
3 | John Doe
Table 2 - Orders
OrderID* | CustID | Order
1 | 1 | Orange
2 | 1 | Banana
3 | 2 | Orange
4 | 2 | Apple
5 | 2 | Banana
6 | 3 | Apple
7 | 3 | Strawberry
8 | 3 | Banana
我想一切表明他们是否已经或还没有一个草莓客户的名单。也就是说,该结果应该是这样的:
Name | Order
Jane Doe | (null)
Jill Doe | (null)
John Doe | Strawberry
我使用的查询是:
SELECT Customers.Name, Orders.Order
FROM Customers LEFT JOIN Orders ON Customers.CustID = Orders.CustID
WHERE (((Orders.Order)="Strawberry"));
返回内容: 李四|草莓
请问某种灵魂,请告诉我我失踪了什么?提前致谢!
已经尝试过。不起作用。返回一条记录:John Doe |草莓。 Orders.Order中没有符合“无效”标准的记录,至少在Access 2016中。 – jalong
实际上,为什么我必须提供任何其他选择标准,因为左连接本身应该提供所有左表中的所有记录?这对此很奇怪。 – jalong
我编辑了我的答案 – EliteRaceElephant