【发布时间】:2013-05-16 14:38:28
【问题描述】:
我有 3 个 dremel 链接表:2 个标识表和 1 个连接 2 个标识表的表。
表 A(4500 行):
- a_id(密钥);
- a_attr1;
- a_attr2.
表 B(1500 行):
- b_id(键);
- b_attr1;
- b_attr2.
表 C(700 行):
- a_id;
- b_id.
简化的查询是:
SELECT
A.a_id,
a_attr1,
GROUP_CONCAT(STRING(b_attr1)) AS b_attr1,
STRFTIME_UTC_USEC(NOW(), '%a %e-%b-%Y %R %Z'),
SUM(b_attr2) AS b_attr2
FROM [dataspace_name]:[project_name]:[dataset_name].A
LEFT OUTER JOIN
(SELECT
b_id,
b_attr1,
b_attr2,
a_id
FROM [dataspace_name]:[project_name]:[dataset_name].B
JOIN [dataspace_name]:[project_name]:[dataset_name].C
ON [dataspace_name]:[project_name]:[dataset_name].B.b_id = [dataspace_name]:{project_name]:[dataset_name].C.b_id
) AS BC
ON A.a_id = BC.a_id
WHERE
a_attr2 = 1
GROUP BY
a_attr1
HAVING
(b_attr2 IS NULL) OR (b_attr2 > 0)
ORDER BY
a_attr1
;
这个查询运行了几个月,直到上周一,2013 年 5 月 13 日。
我得到的错误信息是:
大表 C 必须作为连接查询中最左边的表出现。
我尝试在错误消息之后重新编写查询并交换表,但我得到了关于最右侧表的相同消息。
非常感谢有关可能导致失败的原因以及如何修复查询的任何建议。
【问题讨论】:
-
已解决,查询再次运行,如果有人感兴趣,可以通过将 "JOIN [dataspace_name]:[project_name]:[dataset_name].C" 替换为 "JOIN 每个 [dataspace_name]:[project_name]:[dataset_name].C"
标签: google-bigquery