您好我在BigQuery中有两个表:
TableA:consumerID,consumerSegment
TableB:consumerID
我想做的就是用"找到"更新TableA.consumerSegment。其中TableA.consumerID = TableB.consumerID
我正在使用此声明,但作为回报,我收到错误:
UPDATE `MyTableLongNameA` AS TableA
SET TableA.consumerSegment = "Found"
FROM `MyTableLongNameB` AS TableB
WHERE TableA.consumerID = TableB.ConsumerID
错误是:
标量子查询产生了多个元素
感谢任何帮助。
由于
答案 0 :(得分:2)
这表示来自TableB
的密钥在TableA
中有多个匹配项。来自the documentation:
如果要更新的表中的行与FROM子句中只有一行连接,则该行将更新。
如果要更新的表中的行与FROM子句中的多个行连接,则查询会生成运行时错误。
请改为尝试:
UPDATE `MyTableLongNameA` AS TableA
SET TableA.consumerSegment = "Found"
WHERE EXISTS (
SELECT 1
FROM `MyTableLongNameB` AS TableB
WHERE TableA.consumerID = TableB.ConsumerID
)