带有AS别名的不明确列参考

Jac*_*ack 6 sql postgresql alias ambiguous

我不确定在使用别名时如何解决模糊的列引用.

想象一下两个表,a并且b都有一个name列.如果我连接这两个表并为结果添加别名,我不知道如何引用这name两个表的列.我尝试了一些变体,但它们都不起作用:

尝试1

SELECT a.name, b.name
FROM (a INNER JOIN b ON a.id = b.id) AS x
Run Code Online (Sandbox Code Playgroud)

这不起作用,a并且b超出范围.

尝试2

SELECT x.a.name, x.b.name
FROM (a INNER JOIN b ON a.id = b.id) AS x
Run Code Online (Sandbox Code Playgroud)

SQL语法不能像那样工作.

尝试3

SELECT x.name, x.name
FROM (a INNER JOIN b ON a.id = b.id) AS x
Run Code Online (Sandbox Code Playgroud)

那简直太模糊了!

我完全没有想法 - 任何帮助都会非常感激.

Joh*_*Woo 10

不要用括号括起来,因为(a INNER JOIN b ON a.id = b.id)它不是一个完整的查询.

SELECT  a.name AS A_Name, 
        b.name AS B_Name
FROM    a INNER JOIN b 
           ON a.id = b.id
Run Code Online (Sandbox Code Playgroud)

或者(假设)如果你有更长的表名,你想缩短它,

SELECT  a.name AS A_Name, 
        b.name AS B_Name
FROM    longTableNameA a 
        INNER JOIN longTableNameB b 
           ON a.id = b.id
Run Code Online (Sandbox Code Playgroud)