0

我在这里从具有 30 行信息的 TABLE_PRODUCT 到具有 3 行信息的 TABLE_PRODUCT_CATEGORY_ORDER 的日期,这个脚本正在工作 ii 一个一个地做这个有什么方法可以使这个脚本更短?

         INSERT INTO TABLE_PRODUCT_CATEGORY_ORDER (ProductShortID,CategoryID,Priority) SELECT TABLE_PRODUCT.ID,TABLE_PRODUCT.ProductCat ,TABLE_PRODUCT.ProductPriority    FROM TABLE_PRODUCT 
            INSERT INTO TABLE_PRODUCT_CATEGORY_ORDER (ProductShortID,CategoryID,Priority) SELECT TABLE_PRODUCT.ID,TABLE_PRODUCT.ProductSubCat1 ,TABLE_PRODUCT.ProductPriority1    FROM TABLE_PRODUCT 
            INSERT INTO TABLE_PRODUCT_CATEGORY_ORDER (ProductShortID,CategoryID,Priority) SELECT TABLE_PRODUCT.ID,TABLE_PRODUCT.ProductSubCat2 ,TABLE_PRODUCT.ProductPriority2    FROM ............
............
..........


            INSERT INTO TABLE_PRODUCT_CATEGORY_ORDER (ProductShortID,CategoryID,Priority) SELECT TABLE_PRODUCT.ID,TABLE_PRODUCT.ProductSubCat9 ,TABLE_PRODUCT.ProductPriority9    FROM TABLE_PRODUCT
4

1 回答 1

1

您可以在插入它们之前使用 UNION 组合所有值。

INSERT INTO TABLE_PRODUCT_CATEGORY_ORDER (ProductShortID, CategoryID, Priority) 
SELECT *
FROM (SELECT ID, ProductCat AS CategoryID, ProductPriority AS Priority FROM TABLE_PRODUCT UNION 
SELECT ID, ProductSubCat1, ProductPriority1 FROM TABLE_PRODUCT UNION 
SELECT ID, ProductSubCat9, ProductPriority9 FROM TABLE_PRODUCT) 

UNION ALL 还将包括任何重复的行(如果有的话,UNION 会删除这些行)。

于 2013-06-27T12:13:14.397 回答