2017-04-10 20 views
0

爲了執行此操作(在標題描述中),顯然它已經是規範化數據庫,因此內部聯接類型的檢查將被肯定使用。如果列值id與另一個表(標準化表格)中ID的描述相匹配,則在指定列中插入數據

比方說,我們有一個客戶表和一個給定的customer_ID作爲主鍵,以及描述名字姓氏等,並在另一個表(Customer_Sales_History)Customer_ID列也是爲了使其能夠以查詢方式進行搜索。

更新: 我奮鬥的是,我需要通過CUSTOMER_NAME & Customer_Lastname檢查,以增加在特定的列中的XML(SOAP響應)格式的收購,但附加到特定CUSTOMER_IDS具體數據。

如果CUSTOMER_NAME =「約翰」和Customer_Lastname =「馬丁」然後填充salescode產品數量和產品描述與價值觀

體積大(數千行),以便SQL可能需要填充從插入另一張桌子,即時通訊這種類型的清涼卷。

  Customer Table 
Customer_ID | Customer_Name | Customer_Lastname 
1   | John   | Martin 
2   | Jack   | White 
3   | Don   | Carrera 

    Customer_Sales_History Table 

Customer_ID | Sales_Code | ProductQuantity | ProductDescription 
2   |  X  |  X  |   X 

爲了與CUSTOMER_ID 2作爲給定目標我必須在一行CUSTOMER_NAME =傑克和Customer_Lastname =白色和填充Sales_Code Product_Quantity &產品說明匹配插入給定的數據Customer_Sales_History表。

+0

那麼這個「XML格式」應該如何呢?你需要哪些信息?你真的需要插入數據還是想在歷史表中更新_update_現有的行? sales_code,productquantity和productdescription的值來自哪裏?您的客戶表似乎並沒有這個功能。 –

+0

這是一個SOAP響應所以它像 傑克 <產品數量> 2 <產品描述> SQL HOW TO傻瓜的事情也就是這樣的迴應像45.000 others ..所以即時嘗試做的是創建一個SQL語句,所以我不必手動做...除此之外,我可以用Navicat做。 1行不需要SQL代碼。 – adtoctor

+0

對不起,我不明白。爲什麼不能使用簡單的'insert into customer_sales_history(...)values(...)'? –

回答

1
Update ch 
set ch.sales_code = ..., 
    ch. ProductQuantity =..., 
from Customer_Sales_History ch join Customer c on ch. Customer_ID= c.Customer_ID 
where ch.Customer_ID=2 
+0

做**不**在UPDATE語句的'from'子句中指定目標表,除非您想要該表與其自身的交叉連接。 –

+0

你的意思是?你能寫下來嗎? – Mehr

+0

它已經寫在手冊中:https://www.postgresql.org/docs/current/static/sql-update。html(參見'from_list'部分) –

0

如果您已將客戶表中的customer_ID聲明爲Customer_Sales_History表中的主鍵和customer_ID作爲外鍵,則它將自動執行檢查部分。 那麼,爲什麼你需要明確地檢查customer_id?

+0

因爲我給出的數據不知道數據庫格式,所以他們只是給出客戶的描述,例如Jack White是我必須在行中匹配才能插入的描述新的數據。 – adtoctor

相關問題