Ms access 2007 在ms access中使用内部联接时返回单个客户的记录
我的MS Access 2007数据库中有一个表Customer、Item和收据详细信息。我想生成一个只返回单个客户详细信息的查询。我试过这个问题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
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:可怕的是我不用想就把它们都听懂了。:)