google-bigquery 使用另一个表更新表

mjd*_*dxb 5 google-bigquery

您好,我在 BigQuery 中有两个表:

表A:consumerID,consumerSegment

表B:消费者ID

我想做的就是用“found”更新 TableA.consumerSegment,其中 TableA.consumerID=TableB.consumerID

我正在使用这个语句,但作为回报,我收到一个错误:

UPDATE `MyTableLongNameA` AS TableA

SET TableA.consumerSegment = "Found"

FROM `MyTableLongNameB` AS TableB

WHERE TableA.consumerID = TableB.ConsumerID
Run Code Online (Sandbox Code Playgroud)

错误是:

标量子查询产生多个元素

任何帮助表示赞赏。

谢谢

Ell*_*ard 4

TableB这表明中的某个键有多个匹配项TableA。从文档中:

如果表中要更新的行与 FROM 子句中的一行恰好连接,则该行将被更新。

如果要更新的表中的一行与 FROM 子句中的多行连接,则查询会生成运行时错误。

试试这个:

UPDATE `MyTableLongNameA` AS TableA
SET TableA.consumerSegment = "Found"
WHERE EXISTS (
  SELECT 1
  FROM `MyTableLongNameB` AS TableB
  WHERE TableA.consumerID = TableB.ConsumerID
)
Run Code Online (Sandbox Code Playgroud)