我有3个dremel链接表:2个身份表和1个连接2个身份表的表。
表A(4500行):
表B(1500行):
表C(700行):
简化查询是:
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必须作为连接查询中最左边的表出现。
我尝试在错误消息之后重新编写查询并交换表,但是我收到了关于最右表的相同消息。
非常感谢任何可能导致失败的建议以及如何修复查询。
答案 0 :(得分:0)
它已经解决,查询再次正常运行,如果有人感兴趣,可以将JOIN [dataspace_name]:[project_name]:[dataset_name].C
替换为JOIN EACH [dataspace_name]:[project_name]:[dataset_name].C