需要正确的UPDATE语句

时间:2014-09-16 19:10:02

标签: sql

我有两张这样的表

Table 1

pn          TD
------------------
99sss136    495             
99sss278    495            
99king679   600            
99suu8755   600 

Table 2

pn          Mn
---------------
99sss278     ?
99sss136     ?
99king679    ?
99suu8755    ?

在上面的两个表中,我们可以使用pnpn来使用内部联接。

我想更新Mn列。

table1 99sss136& 99sss278具有相同的td 495.MN列应更新为99sss136或99sss278

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题,但这里有一些建议

第一个建议

update t2
set mn = t1.td
from table2 t2
inner join table1 t1
on t1.pn = t2.pn

第二条建议

update t2
set mn = t.pn2
from table2 t2
inner join 
(
    select t1.pn pn1, max(t3.pn) pn2
    from table1 t1
    inner join table1 t3 on t3.td = t1.td
    group by t1.pn
) t 
on t.pn1 = t2.pn