【发布时间】:2021-07-15 18:17:23
【问题描述】:
为什么 Vertica 在以下代码中返回 zip3 不明确的错误?由于它是作为左连接的键,所以两个表必须相等。
SELECT zip, zip3, city, zip3_name
FROM zip_codes
LEFT JOIN zip3_codes
USING (zip3);
这会产生以下错误:
Query 1 ERROR: ERROR: Column reference "zip3" is ambiguous
DETAIL: Reference "zip3" could refer to either "public.zip_codes.zip3" or "public.zip3_codes.zip3"
我可以通过选择 zip.zip3 或 zip3.zip3 或 COALESCE(zip.zip3, zip3.zip3) 来解决此问题,但我很好奇为什么需要这样做。
【问题讨论】:
-
@steveo314 当然它在两个表中 - 否则,
USING将不起作用。 -
您可以尝试使用
*作为投影中的列列表吗? -
Postgres 不会产生此错误,因此您应该删除标签:dbfiddle.uk/…。
-
PostgreSQL 和 Vertica 是不同的东西。您的问题如何涉及 PostgreSQL?