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.