2013-04-01 40 views
0

我有一個奇怪的問題,我認爲這與我的查找結構的方式有關。加入訪問「查找」字段不會返回結果

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的MIN,我想與ProductNameCategoryName顯示查詢,但我沒有得到結果,所以我想先簡化一下。

當我加入產品和類別我必須匹配Product.[Category Type] = Category.ID;,但是當我嘗試去做SalePrices.[Product Name] = Product.[ID];我得到一個TYPE MISMATCH錯誤。我不確定我出錯的地方。

的最終目標是要結合SalesPrices < - >ProductName加入這一個:

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

讓我撓頭的事情之一就是爲什麼Product.Category查找綁定到ID,但是SalePrices.ProductName查找綁定到實際名稱。 –

+0

「當我試圖做SalePrices。[Product Name] = Product。[ID];我得到一個TYPE MISMATCH」爲什麼產品名稱,類型文本等於產品ID? – Scotch

+0

我正在將它與Product.Category的查找進行比較。我不確定爲什麼一個是Number和其他Text或者如何在不破壞鏈接表的情況下改變它。查找的哪一部分是確定是否使用ID或TYPE/NAME字段? –

回答

1

爲在@Scotch和@HansUp的意見建議,確定的「查找」字段的訪問表一般認爲是壞主意除了最瑣碎的情況。他們隱藏數據庫中真正發生的事情,當你真的嘗試使用時,它們會導致各種混淆(如你所發現的)。 (參考:here,通過@HansUp評論。)

您的最佳行動方案是將表中的查找字段替換爲包含相關表中的標識(鍵)值的常規數字字段。然後,如有必要,可以創建並保存「選擇查詢」以明確執行查找並顯示結果,因爲它們以前出現在[Product][SalePrices]數據表視圖中。