我有一個在Microsoft SQL Server 2012上創建的數據庫,我有兩個表「dbo.Products」和「dbo.Categories」。我試圖查詢這兩個表來爲星型模式創建一個PRODUCT維度表。SQL INSERT INTO FROM SELECT
Products {ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued}
Categories {CategoryID, CategoryName, Description}
這兩個表是從Northwind數據庫
產品維度包含product_key,的productID,產品名稱,的categoryID,這是從Northwind產品/分類表查詢類別名稱和categoryDescription。
我使用的SQL代碼是在這裏:
/*Create Dimension Table */
CREATE TABLE [dbo].[PRODUCT] (
[product_key] [int] IDENTITY (1, 1) NOT NULL Primary Key,
[productID] [int] NULL ,
[productName] nvarchar(30) NULL ,
[categoryID] [int] NULL ,
[categoryName] nvarchar(30) NULL ,
[categoryDescription] nvarchar(30) NULL
)
/* Populate (insert) Dimension Table with a select statement that joins
Product and Categories. */
INSERT INTO [dbo].[PRODUCT] (productID, productName, categoryID, categoryName, categoryDescription)
SELECT
ProductID, ProductName, CategoryID, CategoryName, CategoryDescription
FROM
Products
INNER JOIN
Categories ON Categories.CategoryID = Products.CategoryID;
那麼你的問題是什麼? –
您需要在您的select中使用兩個部分名稱來解決名稱歧義問題,我可以看到一個列名肯定是「CategoryID」,可能還有更多。 –
我的問題與SELECT語句中的語法有關,我嘗試使用[dbo]。[Products]使用兩個部分名稱,但我得到「無效的對象名稱」。 –