Вы можете cross join
две ссылочные таблицы, чтобы сгенерировать все возможные комбинации, и использовать not exists
для фильтрации по тем, которые не существуют в таблице мостов:
select c.customerId, s.supplierId
from customers c
cross join suppliers s
where not exists (
select 1
from orders o
where o.customerId = c.customerId and o.supplierId = s.supplierId
)
Вы также можете сделать это с анти- left join
:
select c.customerId, s.supplierId
from customers c
cross join suppliers s
left join orders o
on o.customerId = c.customerId and o.supplierId = s.supplierId
where o.customerId is null