无法连接 Athena 中两个不同数据库的两个表

Raj*_*ani 6 amazon-s3 amazon-web-services amazon-athena

我在 Athena 有 2 个数据库,每个数据库都有自己的表。我不知道如何连接两个表。Contractinfo_2019 是一个数据库,enrollmentinfo_2019 也是另一个数据库。我不断收到错误:

“SYNTAX_ERROR:第 11:10 行:表 awsdatacatalog.enrollmentinfo_2019.contractinfo2019 不存在

此查询针对“enrollmentinfo_2019”数据库运行,除非查询限定。请在我们的论坛上发布错误消息或联系客户支持,查询 ID:1bbc3941-4fa1-40a0-87c1-eb093784c990。”

    SELECT a.*,
        b.*
FROM 
    (SELECT contract_id,
         plan_id,
         organization_type,
         plan_type,
         organization_name,
        plan_name,
        parent_organization
    FROM contractinfo2019) AS a
LEFT JOIN 
    (SELECT contract_number,
         plan_id,
        state,
        county,
        enrollment
    FROM enrollmentinfo2019) AS b
    ON a.contract_id=b.contract_number
        AND a.plan_id=b.plan_id 
Run Code Online (Sandbox Code Playgroud)

有人可以指导我如何加入 Athena 的桌子吗?我不确定我在这里做错了什么?

Den*_*e M 8

我建议使用WITH重写查询

例如:

 WITH a AS 

    (SELECT contract_id,
         plan_id,
         organization_type,
         plan_type,
         organization_name,
        plan_name,
        parent_organization
    FROM Contractinfo_2019.contractinfo2019),
b as 
    (SELECT contract_number,
         plan_id,
        state,
        county,
        enrollment
    FROM enrollmentinfo_2019.enrollmentinfo2019) 

SELECT * FROM a
LEFT JOIN b ON a.contract_id=b.contract_number
        AND a.plan_id=b.plan_id 

Run Code Online (Sandbox Code Playgroud)


Pio*_*sen 3

您只需要限定表名。

代替:

FROM contractinfo2019
Run Code Online (Sandbox Code Playgroud)

使用这个(假设我的数据库和表名称正确):

FROM contractinfo_2019.contractinfo2019
Run Code Online (Sandbox Code Playgroud)