Итак, я хочу LEFT JOIN
все файлы, на которые ссылается хотя бы один из нескольких столбцов:
SELECT
...
FROM
O o
LEFT JOIN binary_stream_value bsv ON o.binary_stream_value_id = bsv.id
LEFT JOIN artwork art ON o.artwork_id = art.id
LEFT JOIN (SELECT f.id FROM file f WHERE f.id = bsv.file_id OR f.id = art.file_id) f ON TRUE
...
Это не так с
ERROR: invalid reference to FROM-clause entry for table "bsv"
LINE 212: ... LEFT JOIN (SELECT f.id FROM file f WHERE f.id = bsv.file_i...
^
HINT: There is an entry for table "bsv", but it cannot be referenced from this part of the query.
Правда, я наполовину ожидал этого потерпеть неудачу, наполовину надеясь, что я ошибаюсь.
Как правильно написать такой запрос?