SQL Serverの更新は、内部の使用に参加します

価格を記載されている価格と店舗の製品情報製品テーブルにテーブル、我々は2つのテーブルを持っていると仮定し、別のテーブルにはProductPriceテーブルで、私たちはテーブルで価格価格価格フィールド更新ProductPriceテーブル価格フィールドにしたいです80%。 
MySQLでは、我々はこれを行うには、いくつかの手段を持って、一つは更新TABLE1 T1を、表2 TS ...方法です。 

コードのコピーコードを次のとおりです。

UPDATE製品P、productPriceの頁の 
SETのpp.price = pp.price * 0.8 
p.productId = pp.productId 
とp.dateCreated < '2004-01-01' 


もう一つの方法は、更新し、内部結合を使用することです: 

コードのコピーコードを次のとおりです。

UPDATE製品P 
INNERはproductPrice頁JOINの 
ON p.productId = pp.productId 
のSET pp.price = pp.price * 0.8 
WHERE p.dateCreated < '2004-01-01'を 


また、我々はまた、ProductPriceテーブルは価格が記録されない場合、たとえば、それは製品表1、次のSQL文にフィールドをisDeletedなり、マルチテーブルの更新を行うために左外部結合を使用することができます。 

コードのコピーコードを次のとおりです。

UPDATE製品Pの 
LEFT JOIN productPrice PP 
ON p.productId = pp.productId 
= 1 p.deleted SET 
pp.productIdがnull 


また、上記の実施例は、関連する2つのテーブル間で行われているが、唯一のテーブルのレコードを更新するために、実際には、2つのテーブルが以下のSQL、同時に更新することができます。 

コードのコピーコードを次のとおりです。

UPDATE製品P 
インナーproductPrice PP JOIN 
ON p.productId = pp.productId 
SETのpp.price = pp.priceを* 0.8、 
p.dateUpdate = CURDATE() 
p.dateCreated < '2004-01-01' 


二つのテーブルに関連付けられているdateUpdate 2つのフィールドは、価格ProductPriceフィールドとProductテーブルのフィールドのテーブルを更新します。

おすすめ

転載: www.cnblogs.com/baili-luoyun/p/11118588.html