Следующее получает пары, которые НЕ связаны:
select g1.gadget as gadget1, g2.gadget as gadget2
from gadget g1 join
gadget g2
on g1.gadget <> g2.gadget left join -- presumably gadgets are not related to themselves
relation r
on r.gadget1 = g1.gadget and r.gadget2 = g2.gadget
where r.gadget1 is null
Затем вы хотите, чтобы гаджеты не были в этом списке:
select g.gadget
from gadget g left join
(select g1.gadget as gadget1, g2.gadget as gadget2
from gadget g1 join
gadget g2
on g1.gadget <> g2.gadget left join
relation r
on r.gadget1 = g1.gadget and r.gadget2 = g2.gadget
where r.gadget1 is null
) gg
on g.gadget = gg.gadget1
where gg.gadget1 not null;