【发布时间】:2023-02-08 01:51:55
【问题描述】:
我有 3 个表:表 1、表 2 和表 3。 这三个表包含 3 个相同的列 SAMECOL1、SAMECOL2 和 SAMECOL3。 表 Table1 和 Table2 都有 MY_PK_COL 列,它是 Table1 的主键。
当我在 SQL Developer 中使用此查询时,出现错误:
SELECT * FROM Table1
INNER JOIN Table2 ON Table1.MY_PK_COL = Table2.MY_PK_COL
JOIN Table3 USING (SAMECOL1, SAMECOL2, SAMECOL3)
- 00000 - “列定义不明确”
但是当我使用它时没关系:
SELECT * FROM Table1 JOIN Table2 USING (MY_PK_COL, SAMECOL1, SAMECOL2, SAMECOL3) JOIN Table3 USING (SAMECOL1, SAMECOL2, SAMECOL3)如果我理解得很好,在第一个查询中,3 列 SAMECOLx 被重命名为别名,例如 SAMECOL1_1、SAMECOL2_1、SAMECOL3_1,因此对于使用 USING 子句的第二个连接(模棱两可的事情)来说应该不是问题。
那么,第一个查询的问题在哪里?
【问题讨论】: