2012-02-24 85 views
0

我沒有真正的方法來簡潔地總結這一個。我有兩個數據庫表(PostgreSQL 9.x)基於存在於外表中的插入或鏈接記錄

第一個包含產品,例如。每個產品都有一個名稱和一個唯一的ID。

第二個表包含銷售記錄,並且包含每個產品的名稱,但不包含該ID。我想使用Products表中相應唯一條目的'product_id'來更新此表。但是,有時產品名稱顯示在「產品」表中不存在的「銷售」表中。當我找到其中一個產品時,我想要將一個產品記錄添加到Products表中,然後使用新的product_id外鍵更新該產品名稱的銷售記錄。

我有一些執行第一部分的SQL:使用與Products表中的唯一名稱相對應的product_id更新銷售記錄。我只需要知道如何首先掃描未知產品名稱的銷售表並在Products表中創建它們。

回答

1

事情是這樣的:

-- add any products not in products table 
INSERT INTO Products(ProductName) 
SELECT DISTINCT S.ProductName 
FROM Sales AS S 
WHERE NOT EXISTS(
    SELECT * 
    FROM Products AS P 
    WHERE P.ProductName = S.ProductName 
); 

-- now just do update 
+0

謝謝!我覺得這很容易。我會盡快在明天晚上/明天嘗試。 – n8gard 2012-02-25 00:16:45

+0

這工作。再次感謝。 – n8gard 2012-02-26 19:52:37

+0

@ B5Fan74 - 沒問題,很高興爲你工作。快樂的SQL – 2012-02-26 20:49:28

相關問題