Pierwszą rzeczą, którą chciałbym wypróbować, jest podzapytanie:
from ((select q.* from quanda q where q.id = :id1) union
(select q.* from quanda q where q.related = :id2)
) left join
. . .
Uwaga:to naprawdę wymaga indeksów na quanda(id)
i quanda(related)
dla wydajności.
Jeśli wybrano kilka wierszy, może to być znacznie szybsze.