使用另一个表中的值更新表值

时间:2016-04-19 05:06:18

标签: sql-server tsql

我尝试使用具有相同列名的另一个表中的值更新空白列。我已经写了一份声明来获取这些值

SELECT p.[ID]
      ,[PatientID]
      ,p.[ClinicID]
      ,[CurrentPlanNumber],
        pin.ClinicId
  FROM [ProductCheckout] p
  inner join Patients pin 
  on p.PatientID=pin.Id

当我尝试更新列时,出现错误:

当EXISTS没有引入子查询时,只能在选择列表中指定一个表达式。

UPDATE [ProductCheckout]
   SET ClinicId = (SELECT p.[ID]
      ,[PatientID]
      ,p.[ClinicID]
      ,[CurrentPlanNumber],
        pin.ClinicId
  FROM [ProductCheckout] p
  inner join Patients pin 
  on p.PatientID=pin.Id)

2 个答案:

答案 0 :(得分:1)

试试这个

 UPDATE pin
   SET pin.ClinicId = p.[ID]
  FROM [ProductCheckout] pin
  inner join Patients p
  on pin.PatientID=p.Id

答案 1 :(得分:1)

使用JOIN更新。

<强>查询

UPDATE t1
SET t1.ClinidId = t2.ClinicId
FROM [ProductCheckout] t1
JOIN Patients t2
ON t1.PatientID = t2.Id
WHERE t1.ClinidId IS NULL;