来自3个表的 PostgreSQLJOIN 数据

我是 PostgreSQL 的新手,正在尝试编写一个查询。我很确定对于一个知道自己在做什么的人来说这很容易——我就是不知道!:)

基本上我有三张桌子。在第一部分中,我存储患者的详细信息。在第二种方法中,我存储了对它们的每个图像的引用。在第三步中,我存储指向图像文件路径的链接。我没有设计数据库,所以我不知道为什么图像文件表是分离的,但它是。

我希望能够做的是从第一个表中选择数据,从第二个表中加入数据,然后从第三个表中加入数据,这样结果中就有了 name & file 路径。

所以基本结构是:

Table 1:
person_id | name


Table 2:
person_id | image_id


Table 3:
image_id | `path filename`

我想做的是在一个查询中,获取人的“名称”和图像“路径文件名”。

我很高兴与“模板”样式的答案与加入我需要的。我不需要用真正的代码来写。(也就是说,我认为你可以直接给我写一个 SELECT table1.name, table3.pathfilename FROM JOIN ... etc...的答案)。

142839 次浏览

Something like:

select t1.name, t2.image_id, t3.path
from table1 t1
inner join table2 t2 on t1.person_id = t2.person_id
inner join table3 t3 on t2.image_id=t3.image_id

Maybe the following is what you are looking for:

SELECT name, pathfilename
FROM table1
NATURAL JOIN table2
NATURAL JOIN table3
WHERE name = 'John';