
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.10.2016, 21:45
|
|||
|---|---|---|---|
|
|||
Сортировка по максимальному количеству вхождений в IN |
|||
|
#18+
есть 3 таблицы. Продукты, рецепты, и связь продуктов с рецептами. product idname1соль2молоко3сметана recept idname1блины2каша3пирог product_to_recept idproduct_idrecept_id111221322 Я ищу рецепты, по продуктам. Код: plsql 1. 2. 3. 4. 5. 6. но такой запрос вернет мне все рецепты где встречаются продукты с id 12,3 или 4. Возможно ли как то отсортировать результат запроса, таким образом, чтобы самые первые были рецепты, в которых есть максимальное вхождение по id продуктов? То есть, я бы хотел чтобы сперва шли рецепты в которых есть все 3 продукта (12,3,4) затем шли рецепты где есть 2 продукта (12,3) (12,4) (3,4), затем чтобы шли рецепты в которых встречается 1 продукт (12 или 3 или 4). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2016, 22:45
|
|||
|---|---|---|---|
Сортировка по максимальному количеству вхождений в IN |
|||
|
#18+
Как-то так: Код: sql 1. 2. 3. 4. 5. По производительности, правда, не фонтан. Но если данных немного, то сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2016, 22:58
|
|||
|---|---|---|---|
|
|||
Сортировка по максимальному количеству вхождений в IN |
|||
|
#18+
miksoft, Спасибо, немного поменял, но суть запроса понял. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 01:13
|
|||
|---|---|---|---|
Сортировка по максимальному количеству вхождений в IN |
|||
|
#18+
miksoft, а почему не SELECT recept_id, GROUP_CONCAT(product_id) product_list FROM product_to_recept as ptr WHERE ptr.product_id IN (12,3,4) GROUP BY ptr.recept_id ORDER BY count(*) DESC в этом случае группировка будет идти после отбора нужных рецептов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 01:18
|
|||
|---|---|---|---|
Сортировка по максимальному количеству вхождений в IN |
|||
|
#18+
retvizanв этом случае группировка будет идти после отбора нужных рецептовНо тогда содержимое рецептов будет ограничено перечисленными идентификаторами. А в моем запросе полный список продуктов для выбранных рецептов. Если же нужны только идентификаторы рецептов, то да, Ваш запрос более оптимальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1831364]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 300ms |

| 0 / 0 |
