我有3个链接的表: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必须显示为联接查询中最左边的表。
我试图在错误消息之后重写查询并交换表,但是我得到了关于大多数正确表的相同消息。
任何可能导致失败的原因以及如何修复查询的建议都是非常感谢的。
发布于 2013-05-31 20:48:09
它被解决了,查询再次工作,如果有人感兴趣,它是通过用JOIN [dataspace_name]:[project_name]:[dataset_name].C替换JOIN EACH [dataspace_name]:[project_name]:[dataset_name].C来完成的。
https://stackoverflow.com/questions/16590413
复制相似问题