Ответ 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
Я новичок в 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... и т.д." ).
Спасибо!! Джон
Что-то вроде:
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';