0

我有三个相互连接但不直接连接的数据库表。以下是表格:

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

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

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

所以表一中的每一行都可以直接链接到第三表中的行。我需要从 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_onetrough中的键从第三个表中获取信息table_two

4

1 回答 1

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;
于 2013-05-22T12:11:04.173 回答