zoukankan      html  css  js  c++  java
  • 复杂一些的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

    用来同步两个表的数据!

  • 相关阅读:
    你可能不知道的js -- 数据类型转换
    项目开发过程中使用工具的相关配置 -- git / svn / 谷歌跨域
    博客园个人博客页面主题
    keep-alive指定条件缓存的坑
    element的多文件上传
    谷歌应用商店扩展程序
    从郭建的遭遇(自称最惨的创业者)看‘程序员的人生观’(一)
    我深表遗憾
    入门学习三
    编程入门学习二
  • 原文地址:https://www.cnblogs.com/cuijl/p/7357355.html
Copyright © 2011-2022 走看看