Есть такая структура таблицы orders
- id
user_id
product_id
Записи:
Код: Выделить всё
id user_id product_id
1 1 2
2 2 2
3 2 3
4 2 4
5 1 2
6 1 5
7 1 5
8 1 5
Т.е. в данном случае вытащатся только с id 7 и 8
Есть 2 не совсем рабочих варианта:
1) Возвращает нужные записи с дубликатами, а дубликаты не нужны.
Код: Выделить всё
select * from your_table
INNER JOIN (
SELECT user_id, product_id
FROM your_table
GROUP BY user_id, product_id
HAVING COUNT(id) > 1
) as m ON m.user_id = your_table.user_id AND m.product_id = your_table.product_id
Код: Выделить всё
SELECT
id
FROM
orders outerO
WHERE
EXISTS (
SELECT
*
FROM
orders innerO
WHERE
innerO.user_id = outerO.user_id
AND innerO.product_id = outerO.product_id
AND innerO.id < outerO.id
);