У меня есть массив в SQL, содержащий все заказы и все продукты из этих заказов, и мне нужно найти все пары продуктов, которые никогда не заказывались вместе в одном порядке.Поиск всех комбинаций двух продуктов, которые никогда не были заказаны вместе
Я начал с чем-то вроде этого
SELECT a.orderid, a.productid, b.OrderID, b.ProductID from [Order Details] a cross join [Order Details] b
except
SELECT a.orderid, a.productid, b.OrderID, b.ProductID from [Order Details] a cross join [Order Details] b
where a.ProductID=b.ProductID
, но я не знаю, как избавиться от остальных возможных пар, так что у меня есть только те, которые мне нужны слева.
EDIT: Немного изменил запрос, пошел для разного подхода. Я все ближе, но до сих пор не знаю, как избавиться от повторений, как и абы ба
select p1.productid, p2.productid from products p1 join products p2 on p1.productid<>p2.productid
except
select a.productid, b.productid from [Order Details] a join [Order Details] b on a.ProductID<>b.ProductID
where a.OrderID=b.OrderID