Я пишу SQL-оператор в PostgreSQL, где я присоединяюсь к данным из разных таблиц, каждая из которых связана внешними ключами в своих идентификаторах.В таблице b есть поле a_id, которое относится к идентификатору таблицы a и т. Д.
Моя проблема заключается в том, что я хочу повторно использовать значение из объединенной таблицы в предложении WHERE без необходимости повторного выполнения всех соединений.вот так:
SELECT *
FROM a
INNER JOIN b ON b.a_id = a.id
INNER JOIN c ON c.b_id = b.id
WHERE a.id = 3
AND a.x =
(SELECT c.y
FROM a
INNER JOIN b ON b.a_id = a.id
INNER JOIN c ON c.b_id = b.id
WHERE a.id = 3
AND c.id = 5)
Могу поспорить, есть более простое решение для этого фрагмента, которое я просто не понимаю.Я буду рад, если кто-нибудь сможет мне помочь.