我必须编写一条语句,将合成生成的值填充到表(customers)中。还有一个附加的约束,即我只应使用特殊属性填充这些属性(列)(即,对它们进行正式投影,然后对其进行独占操作)。这些属性存储在第二个表attributes中。

我的初稿包含以下两个声明:

-- Get the attributes (columns) we are interested in only
SELECT attributeID from attributes
WHERE tableID = 'customers'

-- Iterate over each row of customers, filling only those attributes (columns)
-- obtained by the above SELECT statement
UPDATE customers
   SET (use the records from above select statement...)

现在我的问题是如何将它们放在一起。我知道有可能在SET子句后附加一个WHERE子句,但这会根据需要选择行而不是列。我还阅读了有关PIVOT的信息,但到目前为止,它仅在一个表中,而不是在两个表中,在这里就是这种情况。我非常感谢任何提示,因为我不知道该怎么做。

最佳答案

不是您要找的吗?
SQL Update Multiple Fields FROM via a SELECT Statement

UPDATE
    Table
SET
    Table.col1 = other_table.col1,
    Table.col2 = other_table.col2
FROM
    Table
INNER JOIN
    other_table
ON
    Table.id = other_table.id

关于sql - 根据表B中的记录更新表A中的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5532054/

10-13 09:50