Полагаю, что заголовок плохо объясняет вопрос, но давайте рассмотрим пример. У меня есть следующие таблицы:
orders table:
order_id
9
10
11
12
order_details table:
order_id, product_id
9, 7
9, 8
10, 5
10, 6
11, 6
11, 7
12, 8
12, 9
products table:
product_id, product_name, price, ext_id
5, poteto, 4.99, null
6, potato, 7.5, 55
7, orange, 7.99, 77
8, green apple, 5.99, 88
9, gren-aple, 6.99, null
products_old table:
product_id, key, value
5, product name, poteto
5, price, 4.99
5, external id, 55
9, product name, gren-aple
9, price, 6.99
9, external id, 88
Я хочу найти заказы с дублированными товарами (только разные product_id, но одинаковыеexternal_id) если имя продукта будет идентичным, это будет легко, используя следующий запрос:
select od.order_id
from order_details od join
products p
on od.product_id = p.product_id
group by od.order_id
having count(p.product_name) > count(distinct p.product_name)
Но как справиться с этим, когда имена разные (например, некоторые орфографические ошибки и т. д.), но у меня есть дополнительная таблицагде external_id (то же самое для тех же продуктов, например, зеленого яблока и gren-aple) хранится как показано выше?Обратите внимание, что в таблице products_old присутствуют только дубликаты с нулевым значением ext_id.Буду очень признателен за помощь:)!