復雜一些的SQL語句


表連接查詢得到結果集后添加數據

1 INSERT INTO #saleSplitProduct(saleorderID,ProductCode,ProductNum,ProductPrice,
2                    productMaterialKind,periodTypeID,baseProduceProductTypeID )
3             SELECT t.saleOrderID,sop.productCode,sop.productNum,sop.productPrice,'',periodTypeID 
4                     , isnull(t.baseProduceProductTypeID,6) 
5             FROM #tempSale t  
6             INNER JOIN saleOrderDzProduct sop ON sop.saleOrderID = t.saleOrderID 

表查詢多個結果,這種方式同樣適用於update於Delete

select * from Table1 where id in(1,2,3)

 

 

關於update_set_from_where

下面這樣的一個例子:

1 UPDATE psto SET productMaterialKind=sop.productMaterialKind
2             FROM #tempSale t 
3             JOIN dbo.produceSaleTaskOrderDetail AS pstod ON t.saleOrderID=pstod.saleOrderID
4             JOIN dbo.produceSaleTaskOrder AS psto ON pstod.taskorderID = psto.taskOrderID
5             JOIN dbo.saleOrder AS so ON t.saleOrderID=so.saleOrderID
6             JOIN dbo.saleOrderDzProduct AS sop ON pstod.saleOrderID=sop.saleOrderID

update set from 語句格式

當where和set都需要關聯一個表進行查詢時,整個 update執行時,就需要對被關聯的表進行兩次掃描,顯然效率比較低。
對於這種情況,Sybase和SQL SERVER的解決辦法是使用UPDATE...SET...FROM...WHERE...的語法,實際上就是從源表獲取更新數據。

在 SQL 中,表連接(left join、right join、inner join 等)常常用於 select 語句,其實在 SQL 語法中,這些連接也是可以用於update 和 delete 語句的,在這些語句中使用 join 還常常得到事半功倍的效果。

Update T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo   B ON B.L_ID=A.ProductID

用來同步兩個表的數據!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM