0

我有 3 个 dremel 链接表:2 个身份表和 1 个连接 2 个身份表的表。

表 A(4500 行):

  • a_id(键);
  • a_attr1;
  • a_attr2。

表 B(1500 行):

  • b_id(键);
  • b_attr1;
  • b_attr2。

表 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 必须作为连接查询中最左边的表出现。

我尝试在错误消息之后重新编写查询并交换表,但我得到了关于最右边表的相同消息。

非常感谢有关可能导致失败的原因以及如何修复查询的任何建议。

4

1 回答 1

0

它已解决,查询再次运行,如果有人感兴趣,它是通过替换来完成JOIN [dataspace_name]:[project_name]:[dataset_name].CJOIN EACH [dataspace_name]:[project_name]:[dataset_name].C

于 2013-05-31T20:48:09.133 回答