我是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 ......”)。
谢谢! 约翰
答案 0 :(得分:106)
类似的东西:
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
答案 1 :(得分:13)
以下是您正在寻找的内容:
SELECT name, pathfilename
FROM table1
NATURAL JOIN table2
NATURAL JOIN table3
WHERE name = 'John';