У меня есть три таблицы, подобные следующим:
продукты
id | name
1 | name1
2 | name2
3 | name3
атрибуты
id | name
1 | attr1
2 | attr2
3 | attr3
4 | attr4
5 | attr5
6 | attr6
7 | attr7
attr_rel Создает связь между продуктами и атрибутами
attr_id | prod_id
1 | 1
1 | 2
2 | 1
2 | 2
3 | 3
4 | 2
4 | 3
5 | 1
5 | 2
5 | 3
Я хочу выполнить запрос, который возвращает все продукты, упорядоченные по количеству атрибутов, которые они имеют с данным продуктом.
Пример. Для запроса продукта 3 должно возвращаться что-то вроде
id | name | num_attr_in_common
2 | product2 | 2
1 | product1 | 1
(поскольку продукт 3 разделяет атрибуты 4 и 5 с продуктом 2, а только атрибут 5 с продуктом 1)
Может ли кто-нибудь помочь мне, пожалуйста?