Есть ли способ ответить на этот вопрос без использования объединений?
Напишите запрос, который найдет для каждого клиента X другого клиента Y, который заказал хотя бы один общий продукт с X. Найдите все такиепары покупателей (X, Y) и против каждой пары количество перекрывающихся товаров. Таким образом, запрос должен иметь три столбца. Упорядочить результаты по количеству пересекающихся продуктов.
В вопросе используется база данных https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all.
Используя объединения, я могу ответить на вопрос следующим образом:
O2.CustomerID AS Cust2,
COUNT(*) AS OverlappingProd
FROM (SELECT O.CustomerID, OD.ProductID
FROM Orders AS O
JOIN OrderDetails AS OD
ON OD.orderid = o.orderid) AS O1
JOIN(SELECT O.CustomerID, OD.ProductID
FROM Orders AS O
JOIN OrderDetails AS OD
ON OD.orderid = o.orderid) AS O2
ON O2.ProductID = O1.ProductID
AND O2.CustomerID > O1.CustomerID
GROUP BY
O1.CustomerID,
O2.CustomerID
ORDER BY COUNT(*) DESC;
Есть ли способ ответить на него, не используя функцию JOIN? Спасибо за ваше время и внимание.