我以前从来没有问过这个问题,除了简单的查询之外,我对sql并不是很先进,所以如果我听起来不合适,我会道歉,这与我以前的编程非常不同。但今天我陷入了一个独特的位置,试图在没有任何帮助的情况下解决问题,所以我希望在这里得到一些想法或知识。
我有表A和表B.它们有各种不同的列,除了它们共有的两个,ID和电话号码。有时,表B中的几行在电话号码中将为NULL。我需要写一些能够通过ID和电话号码从表A中选择所有记录的东西,在表B中查找相同的ID,如果B的电话号码字段为NULL,它将使用来自A的电话号码更新它。
我真的希望这是有道理的。我已经开始编写一个循环来尝试通过迭代实现这一点,就像我可能在其他编程中一样,但我读到的所有地方都说SQL不是为了做循环所以请远离。我很感激任何意见。
泰勒
答案 0 :(得分:0)
我会检查一下:Updating denormalized database tables
您可以通过“规范化”表并消除冗余数据集来消除此问题。但是,在某些情况下,非规范化数据可能比标准化数据更有效。
答案 1 :(得分:0)
首先通过创建Select
语句获得所需的结果。
Select A.ID as AID, B.ID as BID, A.Phone as APhone, B.Phone as BPhone
From TableA A
JOIN TableB B on A.ID = B.ID
Where B.Phone is Null
然后,您可以非常轻松地将其形成为Update
语句。
Update B
Set Phone = A.Phone
From TableA A
JOIN TableB B on A.ID = B.ID
Where B.Phone is Null