PostgreSQL从3个表中join数据

我是PostgreSQL的新手,试图写一个查询。 我很确定对于一个知道自己在做什么的人来说很容易 – 我只是不知道! 🙂

基本上我有三张桌子。 首先,我存储有关患者的详细信息。 第二,我存储了每个图片的参考。 在第三,我存储链接到图像的文件path。 我没有devise数据库,所以我不知道为什么图像文件表是分开的,但它是。

我希望能够做的是从第一个表中select数据,从第二个和第三个表join数据,所以我最终在结果中的名称和文件path。

所以基本的结构是:

Table 1: person_id | name Table 2: person_id | image_id Table 3: image_id | `path filename` 

我想要做的是在一个查询中,抓住人的“名字”和图像“path文件名”。

我很满意与我需要的连接的“模板”样式的答案。 我不需要它写在实际的代码。 (即我想你可以只写我一个答案说:“SELECT table1.name,table3.pathfilename FROM JOIN … etc …”)。

谢谢!! 约翰

就像是:

 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 

也许以下是你在找什么:

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