Sql 使用另一个表中的数据更新表行

Sql 使用另一个表中的数据更新表行,sql,Sql,我是sql新手,我需要你的帮助来解决这个问题。我有两张桌子。我想要的是使用另一个表中的数据更新一个表中的行,但前提是id相同的表中的值不同 像这样: 表A ID DESC 1 asd 2 aaa 3 asda 表B ID DESC 1 asd33 2 aaa22 3 asda 我想要的是,仅当值不同时,使用DESC A中的数据更新DESC table B 表B ID DESC 1 asd 2

我是sql新手,我需要你的帮助来解决这个问题。我有两张桌子。我想要的是使用另一个表中的数据更新一个表中的行,但前提是id相同的表中的值不同

像这样:

表A

ID       DESC   
1        asd
2        aaa
3        asda
表B

ID  DESC   
1   asd33
2   aaa22
3   asda
我想要的是,仅当值不同时,使用DESC A中的数据更新DESC table B

表B

ID   DESC   
1    asd
2    aaa
3    asda
试试这个

Update TableB
   Set TableB.desc = TableA.desc
   From TableB INNER JOIN TableA  ON TableB.ID = TableA.ID
   Where TableB.desc NOT IN
   (Select ISNULL(TableA.desc,'') From TableA)

asda3和asda不一样吗?您使用的是哪种DBMS?博士后?Oracle?是的,这是一个拼写错误,它是asda而不是asda 3当你对SQL,特别是T-SQL(Microsoft SQL Server)有疑问时,我建议你总是从Microsoft开发人员网络开始。
UPDATE
语法和示例如下。谢谢大家,我会尝试一下,在您的脚本上,我想更新的是表B,当desc不同时,请告诉我一件事,y为什么要做左joinAh是的,这是误导。在这种情况下没关系。你可以加入(内部加入)。我正在编写一个需要左连接的脚本,并且刚刚键入了它。两者都可以。
Update TableB
   Set TableB.desc = TableA.desc
   From TableB INNER JOIN TableA  ON TableB.ID = TableA.ID
   Where TableB.desc NOT IN
   (Select ISNULL(TableA.desc,'') From TableA)