我有三个数据库表,它们彼此连接但不是直接连接。以下是表格:
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
的密钥从第三个表中获取信息。
答案 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;