Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql “在访问时加入”;查阅“;字段不返回任何结果_Sql_Ms Access - Fatal编程技术网

Sql “在访问时加入”;查阅“;字段不返回任何结果

Sql “在访问时加入”;查阅“;字段不返回任何结果,sql,ms-access,Sql,Ms Access,我有一个奇怪的问题,我相信这与我的查找结构有关 TABLE Category ID CategoryName TABLE Product ID ProductName Category - Number (SELECT [Category].[ID], [Category].[Category Type] FROM Category ORDER BY [Category Type];) TABLE SalePrices Several fields rel

我有一个奇怪的问题,我相信这与我的查找结构有关

TABLE Category
   ID
   CategoryName

TABLE Product
   ID
   ProductName
   Category - Number (SELECT [Category].[ID], [Category].[Category Type] FROM Category ORDER BY [Category Type];)

TABLE SalePrices
   Several fields related to sale date, price, &c.
   ProductName - Text (SELECT [Product].[ID], [Product].[Product Name] FROM Product ORDER BY [Product Name]; 
出于某种原因,我在运行以下查询时得到一个空白结果集:

SELECT SalePrices.[Product Name], Product.[Product Name]
FROM SalePrices INNER JOIN Product ON SalePrices.[Product Name] = Product.[Product Name];
我有一个显示
SalePrices.UnitPrice
最小值的查询,我想用
ProductName
CategoryName
显示它,但我没有得到结果,所以我想先简化一下

当我加入产品和类别时,我必须匹配
产品。[Category Type]=Category.ID,但当我尝试执行
SalePrices.[Product Name]=Product.[ID]我得到一个
类型不匹配
错误。我不确定哪里出了错

最终的目标是将
saleprices
ProductName
连接与此连接结合起来:

SELECT Product.[Product Name], Category.[Category Type]
FROM Product INNER JOIN Category ON Product.[Category Type] = Category.ID;

正如@Scotch和@HansUp在评论中所建议的,在访问表中定义“Lookup”字段通常被认为是一个坏主意,但对于最琐碎的情况除外。它们隐藏了数据库中真正的内容,当您实际尝试使用它们时,它们可能会导致各种混乱(正如您所发现的)。(参考:,通过@HansUp的评论)


最好的做法是将表中的查找字段替换为包含相关表中ID(键)值的常规数字字段。然后,如有必要,您可以创建并保存Select查询,以显式执行查找,并显示以前在
[Product]
[SalePrices]
数据表视图中显示的结果。

让我摸不着头脑的一件事是,为什么要将Product.Category查找绑定到ID,但是SalePrices.ProductName查找绑定到实际名称。“当我尝试执行SalePrices时。[Product name]=Product。[ID];我发现类型不匹配”为什么产品名称、类型文本始终等于产品ID?我正在将其与Product.Category的查找进行比较。我不知道为什么一个是数字,另一个是文本,或者如何在不破坏链接表的情况下更改它。查找的哪一部分决定是否使用ID或类型/名称字段?我觉得您可能不熟悉联接(请不要生气,也许我真的不理解您的问题),所以您能用简单的英语说出您希望查询返回的结果吗?我觉得自己把SalePrice.UnitPrice(我在这里没有介绍)、SalePrice.ProductName和Product.Category的.MIN弄糊涂了。