【发布时间】:2016-08-15 14:50:23
【问题描述】:
我想知道为什么 PostgreSQL 会在这个语句上产生一个模棱两可的引用错误:
SELECT c from A JOIN B ON A.c = B.c; -- ERROR: column reference is ambiguous
但不是这个:
SELECT c FROM A NATURAL JOIN B; -- OK
在这两种情况下,A.c 必须与 B.c 相同。
【问题讨论】:
-
JOIN 返回两个表的 C 列。自然连接返回一个 C 列(结果相同),“无表”。
-
@Patrick,好吧,我写了评论,而不是答案……无论如何,答案就在那里。常规的
JOIN ... ON返回两列 C,(A.C 和 B.C),您需要指定您想要的列。一个NATURAL JOIN,还有一个JOIN ... USING (C),只返回一列C。那么它就不能模棱两可了! -
那么你有答案了吗?
标签: sql postgresql join