我试图在一个表中找到所有空的字段,并用另一个表中的数据填充它们。这就是我所拥有的:
UPDATE t1 SET col1 = (
SELECT col99
FROM t2
WHERE t1.product_ID = t2.product_ID
) WHERE col1 IS NULL
完美地用于更新t1的col1中的所有空白字段。但我还需要检查其他字段中的空白并更新它们。我不希望查询在每次任何一个字段为空时更新所有字段,只是空白字段。我可以运行多个查询,但我必须想象有一个更清洁,更好的方法。
谢谢,
马修
答案 0 :(得分:1)
尝试:
UPDATE t1
SET
col1 = COALESCE(col1, (SELECT col99 FROM t2 WHERE t1.product_ID = t2.product_ID)),
col2 = COALESCE(col2, (SELECT ...)),
-- etc.
不应该比初始解决方案表现更好。它只用一个UPDATE查询而不是几个查询来完成工作。