我正在尝试加入 2 个表,每个表有 57,191 行。BigQ 在内部/左侧寻找更大的桌子,在右侧寻找更小的桌子。当我在左侧使用表 B 运行它时,它错误为“必须首先出现大表 A”。当我切换查询并将表 A 放在 From 子句中时,它会出错,因为“大表 B 必须首先出现”。所以当我按照它的指示去做时,它并没有修复它,而是建议我的第一次(不正确的)尝试,除非我以某种方式搞砸了它。
有点讽刺的是,如果两张桌子的大小相同,它会根据大概一张不小于另一张来决定一张更大。我正在尝试找到一个解决方案,其中不包括向其中一个表添加无意义的行,然后在连接工作后尝试将其删除,(因为 BigQ 现在没有加载我的单行 csv 文件,我确信它是由于我的错误。)
Google SQL 语法连接规则似乎是
"join_type Bigquery 支持 INNER(默认)和 LEFT OUTER 连接。table_2 这是连接中的第二个表,必须很小,并且将连接到出现在 FROM 子句中的表。注意,这可以是表name 或另一个 SELECT 子句,在这种情况下,您必须提供别名。 join_condition_1, ..., join_condition_N, ... 连接条件的集合,它必须是相等条件的集合,所有这些条件都必须满足一行被包含在结果中。(也就是说,我们只支持将这些条件用 AND 连接。)"
我正在运行的实际 SQL 是
SELECT lt.activeprosperloans,[fieldsredacted], ...
FROM prosperloans1.listings2 AS lt
JOIN prosperloans1.zjoinedperfloans as ln
ON lt.key = listingkey;
实际错误为:错误:大表 prosperloans1.zjoinedperfloans 必须出现在连接查询中作为最左边的表
谢谢肖恩