使用postgres中的common列加入两个表

时间:2013-05-22 12:08:42

标签: sql postgresql

我有三个数据库表,它们彼此连接但不是直接连接。以下是表格:

Table one
-----------
id
rank
table_two_id

Table two
-----------
id
amount
table_three_id

Table three
-----------
id
name

因此,表1中的每一行都可以直接链接到第三个表中的行。 我需要从table_one中获取一些列以及第三列中的name列。

到目前为止,我尝试了很多组合,但到目前为止这个组合似乎是最有希望的,但是我无法让它起作用:

    select (select s.table_three_id 
            from table_two s 
            where s.id = r.table_two_id) as three_id, 
    table_three.name 
    from table_one r
    INNER JOIN table_three ON (three_id = table_three.id);

我收到一条错误消息,指出列three_id不存在。如何根据table_one通过table_two的密钥从第三个表中获取信息。

1 个答案:

答案 0 :(得分:1)

应该是这样的:

select 
 r.*,
 table_three.name 
from table_one r
INNER JOIN table_two s ON s.id           = r.table_two_id
INNER JOIN table_three ON table_three.id = s.table_three.id;