SQL语句 - 更新两个表

时间:2010-01-01 23:29:24

标签: sql sql-server

我是SQL的新手。请帮忙。 我有以下SQL更新公司ticker = SUN的表来自另一个表,该表有许多记录为'SUN'的记录,我只需要使用一个匹配'Float'的记录

如果我说'SUN',下面的作品会有效,但是,我想为4000多个自动收报机代码执行此操作。我该怎么做?

UPDATE dbo.Company
SET dbo.Company.[Float] = 
    ( SELECT dbo.yahoo.[Value Mast]
          FROM dbo.yahoo
          WHERE dbo.yahoo.[Value Category]= 'Float' and dbo.yahoo.symbol = 'SUN') 
Where dbo.Company.tick = 'SUN'
表公司看起来像 -

Tick
Float
表雅虎看起来像 符号 价值分类(这里的价值类别之一是FLOAT) 值mast(我在公司表中为值类别= float

更新此值

感谢

3 个答案:

答案 0 :(得分:2)

试试这个:

UPDATE Company
SET [Float] = yahoo.[Value Mast]
FROM
  yahoo
  INNER JOIN Company ON yahoo.symbol = Company.tick
WHERE
  yahoo.[Value Category]= 'Float'

只要您只更新一个表,就可以在UPDATE的FROM语句中使用联接。

答案 1 :(得分:1)

我的朋友是更新加入的工作。

update company set [float] = y.[value mast] 
from 
    company c 
    inner join yahoo y 
         on y.symbol = c.tick 
         and y.[value category] = 'float'

答案 2 :(得分:0)

这会为Float中的所有行更新Company的值:

UPDATE 
  dbo.Company
SET 
  dbo.Company.[Float] = (
    SELECT
      dbo.yahoo.[Value Mast] 
    FROM
      dbo.yahoo 
    WHERE 
      dbo.yahoo.[Value Category] = 'Float'
      AND dbo.yahoo.symbol = dbo.Company.tick
  )

子查询现在引用外部查询以获取要查找的符号名称。