Подтвердить что ты не робот

Данные PostgreSQL JOIN из 3 таблиц

Я новичок в 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... и т.д." ).

Спасибо!! Джон

4b9b3361

Ответ 1

Что-то вроде:

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

Ответ 2

Возможно, следующее, что вы ищете:

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