Ms access 2007 在ms access中使用内部联接时返回单个客户的记录

Ms access 2007 在ms access中使用内部联接时返回单个客户的记录,ms-access-2007,inner-join,Ms Access 2007,Inner Join,我的MS Access 2007数据库中有一个表Customer、Item和收据详细信息。我想生成一个只返回单个客户详细信息的查询。我试过这个问题 SELECT [Receipt Details].ReceiptID, [Receipt Details].CustomerID, [Receipt Details].EmployeeID, Customer.Name, [Receipt Details].ItemID, Item.Price, [Recei

我的MS Access 2007数据库中有一个表Customer、Item和收据详细信息。我想生成一个只返回单个客户详细信息的查询。我试过这个问题

SELECT 
  [Receipt Details].ReceiptID, 
  [Receipt Details].CustomerID, 
  [Receipt Details].EmployeeID, 
  Customer.Name, 
  [Receipt Details].ItemID, 
  Item.Price, 
  [Receipt Details].Quantity, 
  [Receipt Details].[Quantity] * [Item].[Price] AS Total 
FROM 
  Item 
INNER JOIN 
  [Receipt Details]  ON Item.ID = [Receipt Details].ItemID;

但它提供了重复输出。知道我们如何进行只返回单个客户记录的查询吗?

使用
WHERE
子句,就像您进行任何其他查询一样:

SELECT 
  [Receipt Details].ReceiptID, 
  [Receipt Details].CustomerID, 
  [Receipt Details].EmployeeID, 
  [Receipt Details].ItemID, 
  Item.Price, 
  [Receipt Details].Quantity, 
  [Receipt Details].[Quantity] * [Item].[Price] AS Total 
FROM 
  Item 
INNER JOIN 
  [Receipt Details]  ON Item.ID = [Receipt Details].ItemID
WHERE 
  [Receipt Details].CustomerID = 1234;

Customer.Name
已从上面的SQL中删除,因为您在
from
子句中未包含任何
Customer
表。如果您确实想将其放在那里,请将其添加回,并使用适当的
JOIN
条件将该表添加到
from
中。)

该查询在
选择中包括
Customer.Name
,但在来自
中没有名为
Customer
的数据源。请仔细检查您的查询,并确保您向我们显示的是实际的SQL语句,该语句提供了重复的输出。@HansUp:捕捉得不错。我没有注意其余的问题;我刚格式化了一开始的内容。我已经更新了我的答案,也包括了这一点,以供将来的读者参考(因为你抓住了这一点,这一点也被添加到了后人的修订说明中)。@KenWhite我只是有点强迫症。(对你来说,有足够的首字母缩略词了吗?)干杯。@HansUp:可怕的是我不用想就把它们都听懂了。:)