82

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

基本上我有三张桌子。首先,我存储有关患者的详细信息。在第二个中,我存储了对它们的每个图像的引用。第三,我将链接存储到图像的文件路径。我没有设计数据库,所以我不确定为什么图像文件表是分开的,但确实如此。

我想要做的是从第一个表中选择数据,从第二个然后第三个表中加入数据,这样我最终得到了结果中的名称和文件路径。

所以基本结构是:

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...)。

4

2 回答 2

167

就像是:

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
于 2013-04-03T22:50:31.853 回答
22

也许您正在寻找以下内容:

SELECT name, pathfilename
  FROM table1
  NATURAL JOIN table2
  NATURAL JOIN table3
  WHERE name = 'John';
于 2013-04-03T22:50:53.437 回答